[英]Entity Framework - Load related entity on related entites (one to many to one)
[英]Entity framework entry load related entity
假设我有以下自动生成的实体
public class Entity1
{
public int Id { get; set; }
public int Entity2Id { get; set; }
public Entity2 { get; set; }
}
public class Entity2
{
public int Id { get; set; }
}
我的MVC应用程序中有一个更新方法,如下所示:
public ActionResult Edit(Entity1 entity)
{
_db.Entry(entity).State = EntityState.Modified;
_db.SaveChanges();
DoSomething(entity);
}
当前, entity
具有Entity2Id
属性集,但没有Entity2
属性集。 如何在entity
对象中合并所有相关实体。
我试着做
_db.Find(entity.ID)
如果我在调用SaveChanges
之后立即放置该方法,它将检索没有Entity2
的缓存实体。 如果我把它的前Entry
电话,我得到了一个错误Entry
电话,说的条目已经存在。 我也尝试在条目上调用Reload
,这似乎没有任何作用。
您需要将Entity2
为virtual
:
public virtual Entity2 { get; set; }
EF会自动为您补水。
并且,如果您碰巧更改了Entity2Id并想重新加载更改后的实体,则可以通过以下方式明确地这样做:
context.Entry(entity).Reference(p => p.Entity2).Load();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.