簡體   English   中英

實體框架6即使具有主鍵也不會在表中插入行

[英]Entity Framework 6 not inserting Rows in table even though has primary key

我有一個多項目解決方案。 在我的EF 6項目Gilbane,RREM.Data中,我有一個EF模型,其中包括表TransactionLog。 然后,我有一個項目Gilbane.RREM.Logging,其中包含一個函數:

public static void RecordTransaction(string appId, string transactionId, DateTime time, string sourceInterface,
            string sourceSystem, string tranId, string response, int interfaceId)
        {
            using (RREM_GilbaneEntities entities = new RREM_GilbaneEntities())
            {
                try
                {
                    var transactionLog = new TransactionLog
                    {
                        transactionID = transactionId,
                        created = DateTime.Now,
                        sourceInterface = sourceInterface,
                        sourceSystem = sourceSystem,
                        appID = appId,
                        GilbaneTransactionID = tranId,
                        response = response,
                        sourceIP = null,
                        SourceID = interfaceId,
                    };

                    entities.TransactionLogs.Add(transactionLog);
                    entities.SaveChanges();
                }
                catch (Exception ex)
                {
                    LogError(appId, ex.ToString(), "RecordTransaction", transactionId, "", interfaceId, "CommonLibrary");
                }
            }

最后,我有另一個程序集,它調用RecordTransaction調用。 我一步一步地看着ReordTransaction執行無誤。 它只是沒有在TransactionLog表中放任何東西! 盡管它具有已聲明的主鍵。 有任何想法嗎?

編輯-EF類庫具有從數據庫生成的模型:

public partial class RREM_GilbaneEntities : DbContext
    {
        public RREM_GilbaneEntities()
            : base("name=RREM_GilbaneEntities")
        {
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            throw new UnintentionalCodeFirstException();
        }

        public virtual DbSet<ErrorLog> ErrorLogs { get; set; }
        public virtual DbSet<TransactionLog> TransactionLogs { get; set; }
        public virtual DbSet<transactionController> transactionControllers { get; set; }
        public virtual DbSet<TransactionOutgoingQueue> TransactionOutgoingQueues { get; set; }
        public virtual DbSet<respons> responses { get; set; }
    }

如果沒有出現錯誤,那是因為EF正在存儲。 這是我的猜測。 看一下您的App_data文件夾,其中可能有一個文件,可以在其中找到記錄。

如何解決這個問題:

  1. 確保設置正確的連接字符串。

  2. 使用與DbContext類繼承的類相同的名稱來設置連接字符串名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM