我使用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