我建立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