包含在实体框架4.1中

时间:2012-08-23 05:02:28

标签: c# entity-framework-4.1

假设我有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可以帮助我如何做到这一点?任何帮助都将非常有用。这只是虚拟查询,我想在性能观点上这样做。提前致谢

2 个答案:

答案 0 :(得分:1)

您是否忘记为代码导入System.Data.Entity命名空间?看这个

How to use Include() after OfType()?

任何方式,我认为你的代码都可以。 ToList之前的所有方法都会返回IQueryable或类似的内容。这意味着它是懒惰的评价。因此无论方法的调用顺序如何,您都将获得相同的性能。

答案 1 :(得分:1)

Include放入查询中没有区别。它只是一个行为修饰符,它在您看到它时不会被执行。只要您对IQueryable Include进行操作,只要您放置它就会产生相同的效果。