EF记录更新为相关对象创建新记录

时间:2015-03-12 12:23:40

标签: asp.net-mvc entity-framework

我有一个EntityFramework代码第一个项目,其中两个对象宽度为关系。

代码示例:

public class A{
    public int ID{get;set;}
    public B b{get;set;}
}

当我打电话时:

_context.A.Attach(a);
_context.Entry(a).State = EntityState.Modified;
_context.SaveChanges();

我成功更新了A,但我在表B中获得了新记录。

我如何避免这种情况,以便在我更新A时也更新B而不是创建新的?

1 个答案:

答案 0 :(得分:0)

我不会以这种方式处理分离的上下文 - 它容易出错 - 但附加上下文中类似事物的解决方案是Include

using (var context = new Context())
{
    context.A.Include(a => a.B).Attach(a);
    context.Entry(a).State = EntityState.Modified;
    context.SaveChanges();
}