我有一個項目在Visual Studio 2010中使用實體框架4.0我有以下代碼:實體框架4.0插入新的對象錯誤
using (var db = new MyEntities())
{
var dbLead = db.Leads.CreateObject();
dbLead.Email = lead.Email;
db.Leads.AddObject(dbLead);
db.SaveChanges();
}
其中MyEntities
是通常的EF對象上下文。 Lead
是EF生成的類,它映射到數據庫中的對應表。除了上面代碼中指定的Email
屬性之外,Lead
類還具有Id
屬性,我在此沒有明確設置該屬性。所有預期的東西,沒有什麼奇怪的。
我在致電db.SaveChanges()
時遇到異常,引用「重複主鍵」作爲問題。但是,在DB中,我將相應的列標記爲主鍵,在.edmx設計器中,相應的屬性標記爲EntityKey爲true,StoreGeneratedPattern標識爲標識。
夫婦的問題:
爲什麼不是設計師很聰明,有StoreGeneratedPattern設置爲當它生成的類的默認身份,假設基礎表有相應的列設置爲一個主鍵?在我的情況下,我不得不進入設計器的每個類,併爲每個主鍵屬性自己設置此值(不過,有趣的是,EntityKey默認設置爲true,如預期的那樣)。
它仍然不工作...爲什麼?我已經嘗試將StoreGeneratedPattern設置爲Computed,但沒有運氣(預計,否則我會想知道爲什麼將它設置爲Computed修復了問題)。
什麼是您的DBMS? – 2011-01-22 20:07:43
您使用默認代碼生成模板? – 2011-01-22 20:11:53