【发布时间】:2009-02-11 11:34:10
【问题描述】:
从表单 POST 收到 LINQ 实体后,我尝试将其附加到数据上下文。但是,我得到的只是以下异常:
An entity can only be attached as modified without original state if it declares a version member or does not have an update check policy.
我也尝试过附加原始行,如下所示:
dataContext.People.Attach(person, originalPerson);
在这种情况下,我得到以下异常:
Object reference not set to an instance of an object.
这是我控制器中的代码:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult Edit(int id, Person person) {
var prevPerson = dataContext.People.Single(p => p.ID == id);
dataContext.People.Attach(person, prevPerson);
dataContext.SubmitChanges();
return Redirect("~/People/Index");
}
关于我在这里做错了什么有什么想法吗?如果需要,我可以发布实体代码。
【问题讨论】:
-
哪一行/对象引发“对象引用未设置为对象实例”错误?我猜 prevPerson 是空的(也许 ID 没有像你期望的那样被映射?)但是如果没有看到代码就很难说......
-
正在映射。当我将实体 Attach() 到 Table 对象时,它会引发错误。
标签: c# asp.net-mvc linq-to-sql