假设我有3个实体Country,State和City .An Relationship is City-> State-> Country。现在我查询搜索
return container.Countries.Include("States.Cities")
.Where(c=>c.States.Sum(s.Population)>10000)
.Search(filter)
.Skip(startIndex)
.Take(itemCount)
.ToList();
我在上述查询中向所有国家/地区包含城市,但我希望在查询结束时将其包括在获取方法之后和 ToList 方法之前。假设查询返回50条记录,我希望仅包含城市到州的50条记录,而不是上述查询中的所有状态。 someOne可以帮助我如何做到这一点?任何帮助都将非常有用。这只是虚拟查询,我想在性能观点上这样做。提前致谢
答案 0 :(得分:1)
您是否忘记为代码导入System.Data.Entity
命名空间?看这个
How to use Include() after OfType()?
任何方式,我认为你的代码都可以。 ToList
之前的所有方法都会返回IQueryable
或类似的内容。这意味着它是懒惰的评价。因此无论方法的调用顺序如何,您都将获得相同的性能。
答案 1 :(得分:1)
将Include
放入查询中没有区别。它只是一个行为修饰符,它在您看到它时不会被执行。只要您对IQueryable
Include
进行操作,只要您放置它就会产生相同的效果。