0

假设我有 3 个实体 Country 、 State 和 City 。关系是 City->State->Country。现在我有搜索查询

 return container.Countries.Include("States.Cities")
.Where(c=>c.States.Sum(s.Population)>10000)
.Search(filter)        
.Skip(startIndex)    
.Take(itemCount)
.ToList();

我在上述查询中包含所有州的城市,但我想在查询的末尾包含它,即在Take方法之后和ToList方法之前。意味着假设查询返回 50 条记录,我只想为这 50 条记录包含城市到州并非针对上述查询中的所有国家。有人可以帮助我如何做到这一点吗?任何帮助都会非常明显。这只是虚拟查询,我想从性能的角度这样做。提前致谢

4

2 回答 2

1

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

如何在 OfType() 之后使用 Include()?

无论如何,我认为您的代码没问题。之前的所有方法ToList都将返回IQueryable或类似的东西。这意味着它是惰性评估。因此,无论方法的调用顺序如何,您都将获得相同的性能。

于 2012-08-23T06:23:03.150 回答
1

Include您输入查询的位置没有区别。它只是一个行为修饰符,在你看到它的那一刻它不会被执行。只要你在任何地方操作IQueryable Include都会有同样的效果。

于 2012-08-23T06:29:04.520 回答