当查询一个较大的表时,您需要在稍后的代码中访问导航属性(我明确地不想使用延迟加载) ,什么将执行更好的 .Include()
或 .Load()
?或者为什么要用这个而不是那个?
在本例中,所包含的表都只有大约10个条目,而雇员有大约200个条目,而且可能发生的情况是,其中大多数条目无论如何都将使用 include 加载,因为它们与 where 子句匹配。
Context.Measurements.Include(m => m.Product)
.Include(m => m.ProductVersion)
.Include(m => m.Line)
.Include(m => m.MeasureEmployee)
.Include(m => m.MeasurementType)
.Where(m => m.MeasurementTime >= DateTime.Now.AddDays(-1))
.ToList();
或者
Context.Products.Load();
Context.ProductVersions.Load();
Context.Lines.Load();
Context.Employees.Load();
Context.MeasurementType.Load();
Context.Measurements.Where(m => m.MeasurementTime >= DateTime.Now.AddDays(-1))
.ToList();