我試着用下面的代碼更新對象:實體框架更新失敗,並引發加MS_Description屬性的例外
using (var context = new ApplicationEntities())
{
var entry = context.Entry(obj);
entry.State = EntityState.Modified;
context.SaveChanges();
}
但是,它拋出以下異常失敗的大部分時間。
更新條目時發生錯誤。有關詳細信息,請參閱內部 例外。 System.Data.Entity.Core.UpdateException:更新條目時發生 錯誤。請參閱 的內部例外詳情。 ---> System.Data.SqlClient.SqlException:添加的屬性不能爲 。屬性'MS_Description'已經存在於'ForeignKeyName'中。 該聲明已被終止。
這裏,ForeignKeyName
是與其他表的外鍵關係的名稱。
我的問題爲什麼它試圖爲ForeignKeyName
添加MS_Description
屬性。
我也試過只更新對象的選擇性屬性,除了外鍵。但是,它也失敗並拋出類似的例外。這種情況發生在生產環境中,在當地的開發環境中也是如此。
更新:
我發現的主要問題。它既不涉及實體框架,也不涉及應用。我發現更新這個特定表的一行觸發了一個觸發器。觸發器的定義是非常錯誤的,它試圖爲外鍵名稱添加MS_Description。我刪除了特定的聲明,現在它可以工作。
檢查'MS_Description'是否有外鍵關係 –
'MS_Description'是表的擴展屬性,它不是表 – rksajib
的列,請與數據庫檢查該列是否存在。 –