[英]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.