更新entityframework 6.0中的导航属性的问题

时间:2015-03-10 09:09:44

标签: c# entity-framework

我在实体框架6.0中工作,Schema第一种创建数据库的方法。我已将延迟加载设置为" false":创建数据库后,我正在使用Entity(A),即Patient,它具有导航属性联系人(B)。我已经更改了患者(A)的联系人(B)信息,例如邮政编码,然后在实体A上调用更新。

public static void A(A a)
{
   unitOfWork.ARepository.Update(a);
   unitOfWork.Save();    
}

工作单元更新方法代码如下

public virtual void Update(TEntity entityToUpdate)
{
   dbSet.Attach(entityToUpdate);
   context.Entry(entityToUpdate).State = System.Data.Entity.EntityState.Modified;    
}

实体A中的任何更改都会更新到数据库,但不会更新联系人的更改。我是实体框架的新手,请指导需要做的事情。

1 个答案:

答案 0 :(得分:1)

不幸的是,在断开实体的情况下,EF无法更新导航属性。你可以:

  1. 从db加载实体,然后在内存中更新实体,然后保存更改。
  2. 直接执行sql update脚本到db。
  3. 此问题早已讨论过(您可以投票):http://entityframework.codeplex.com/workitem/864