我使用Code First與實體框架。EF懶惰加載 - 我可以稍後檢索子集合嗎?
我有一個虛擬屬性類到另一個類(延遲加載)。
public class Order{
public int Id { get; set; }
public virtual ICollection<OrderItem> OrderItems { get; set; }
}
如果我從數據庫中獲得Order
,不包括OrderItem
,然後關閉的DbContext,有沒有可能以後加載它們?如果是,如何?
例如。
private static Order GetFirstOrder(Func<Order, bool> predicate)
{
using (var db = new MyContext())
{
return db.Orders.First(predicate);
}
}
private static void DoSomething()
{
var order = GetFirstOrder(a => a.Id == 1);
//do something with OrderItems later?
}
如果您想在稍後加載相關實體,您顯然需要上下文實例。創建一個實例,附加實體,以便EntityChangeTracker可以跟蹤它,然後延遲加載相關實體。 – jannagy02