我正在使用POCO对象实体框架,并且已启用LazyLoading。实体框架4延迟加载实体集
如果我正在处理与对象关联的集合,集合何时完全加载以及在什么情况下?
如果我把每一种
Order.OrderItems.Count()
Order.OrderItems.Any(x => x.StatusId = aValue)
Order.OrderItems.All(x => x.StatusId = aValue)
做这些保证的OrderItems收集的完整加载? 在代码中的点查询
后查询或
context.LoadProperty(order, “OrderItems”)
,当我们呼吁
Order.Include(“OrderItems”)
但我已经意识到有时这并不总是发生 - 我想知道这不会发生的后果。我觉得我有一点与它
谢谢@Merlyn Morgan-Graham。 你能澄清'如果Linq必须返回一个布尔值或整数,那么它很可能立即运行你的查询'。我查看了http://msmvps.com/blogs/jon_skeet/archive/2010/12/28/reimplementing-linq-to-objects-part-10-any-and-all.aspx,看起来Any和所有实际上遍历覆盖下的结果,所以会自动实现收集。因此,看起来好像任何/全部都会在外部查询中加载集合 –
@TimBrown:“看起来Any和All实际上遍历了封面下的结果,因此会自动实现集合”。我想这正是我所说的,只是在鼬鼠说话(“可能”= **总是**,哈哈)。我刚刚做了一个编辑,希望能够澄清这句话。 –
另外,通过嵌套查询,我的意思是:'Order.OrderItems.Where(i => i.Rebates.Any())'''Rebates.Any()'不会被评估,除非外部查询是评估。 –