當我嘗試填充上下文對象並一次保存/插入所有記錄時,出現以下錯誤。單記錄與批量記錄插入 - 實體框架
{ 「PRIMARY KEY約束違反 'PK_ T8 _2D83E3D3'。不能插入對象 'dbo.T8'。重複的鍵值(AWLS0757043072)重複鍵。\ r \ n該語句已終止。」 }
var proxy = new AREntities();
foreach (var a in b)
{
..........
proxy.AddtoXYZ(data); //Please note 'data' inside foreach loop is different at all times. I am not adding same record multiple times.
}
proxy.SaveChanges();
但是,如果我爲每個記錄創建上下文,然後插入/保存該記錄到數據庫,它工作正常。見下文。
foreach (var a in b)
{
..........
var proxy = new AREntities();
proxy.AddtoXYZ(data);
proxy.SaveChanges();
}
但上面的代碼顯然是螺絲釘的性能。我正在嘗試診斷爲什麼我在場景1中出現錯誤。有什麼想法?
這裏是關鍵約束的定義。
ALTER TABLE [dbo].[T8] ADD PRIMARY KEY CLUSTERED
(
[C1] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
GO
我看到** proxy.AddtoXYZ(數據); **,檢查數據對象C1屬性值在foreach循環中不重複 –
這是我檢查的第一件事情,C1在所有時間都是不同的。 – Nanu
你有沒有嘗試重建EntityFrameWork數據模型? –