当前位置:  开发笔记 > 编程语言 > 正文

LINQ中的实体附件问题

如何解决《LINQ中的实体附件问题》经验,为你挑选了2个好方法。

我在从表单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");
}

关于我在这里做错了什么的想法?如果需要,我可以发布实体代码.



1> Roman O..:

试试以下:

dataContext.People.Attach(person);
dataContext.Refresh(RefreshMode.KeepCurrentValues, person);
dataContext.SubmitChanges();



2> Benjamin Aut..:

在LinqToSQL设计器中,将所有更新检查设置为从不,当您附加调用时,如下所示:

 context.entity.Attach(entity, true);

或者,您也可以从数据库中获取实体并使用POSTed实体中的数据进行更改,然后将其作为更改提交.

推荐阅读
拾味湖
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有