我正在遷移用於Azure的本地SQL Server 2014數據庫。我有一個運行在IIS 8中的Asp.net MVC應用程序,它以通常的方式使用實體框架連接到Azure SQL Server數據庫。實體框架:插入導致使用Azure SQL違反PRIMARY KEY約束,而不是本地
- 我有一個
dbContext
Using(... dbContext.Database.BeginTransaction())
- 其他實體加入
SaveChanges()
成功 - 運行特別是對於一個實體,我做
db.entity.add(newEntity)
,然後SaveChanges()
和獲取:例外:違反PRIMARY KEY約束'PK_entity'。不能在對象'dbo.entity'中插入重複鍵。重複的鍵值是(2)。
的主鍵是自動增加的編號,我運行此的唯一用戶。該表中已有156條記錄。
奇怪的是,當我在本地機器上使用本地SQL Server實例運行這個工作時,這工作正常,但是當從IIS和Azure數據庫運行時,會發生此異常。
該實體根本沒有其他關係/限制。
我覺得可能有線索,如果我一直試圖保存這個記錄(ISS和Azure),失敗的重複鍵值每次增加1。
'有156條記錄在此表中already' - SELECT * FROM thistable好嗎? –
如果您可以從該表中刪除所有記錄,然後嘗試「添加()」。這將證明如果錯誤不是由於現有數據造成的。 – MKR
最小程度地共享表格DDL和EF模型的相關部分,以及導致錯誤的數據庫通信的EF日誌(db.Database.Log = m => MyLogger(m))。最好把問題歸結爲一個完整的,獨立的repro。當你這樣做時,你可能會發現問題的根源。 –