我建立ASP.NET MVC2應用程序,並使用實體框架的ORM。我有麻煩更新數據庫中的對象。每次嘗試entity.SaveChanges()時,EF都會在表中插入新行,而不管我想要更新,還是插入即可完成。我想(在接下來的例子等)對象的實體連接,但是後來我如何使用實體框架從asp.net MVC2更新數據庫中的模型?
{"An object with a null EntityKey value cannot be attached to an object context."}
這裏是我的插入和更新的簡單的功能(這不是真正的汽車,但它是簡單的這樣來解釋,雖然我不要認爲這影響答案的話)......
public static void InsertOrUpdateCar(this Vehicles entity, Cars car)
{
if (car.Id == 0 || car.Id == null)
{
entity.Cars.AddObject(car);
}
else
{
entity.Attach(car);
}
entitet.SaveChanges();
}
我使用AttachTo(「汽車總動員」,汽車),甚至嘗試過,但我得到了同樣的異常。
任何人有這方面的經驗?
是的,我有強類型的視圖,我有HttpPost方法從該窗體獲取Car對象。 PK在那裏,它是正確的(我已經使用隱藏字段),但EntityKey爲空。我不知道爲什麼它丟失,也不知道在哪裏:S – Eedoh 2010-04-27 11:25:16
忘記更新...這是問題所在。需要使用相同的實體密鑰進行更改並保存在對象上。 – Eedoh 2010-06-09 08:31:34