在检查子/孙对象时可能多次枚举IEnumerable

时间:2013-02-16 17:04:29

标签: c# entity-framework

我有以下查询:

baseQuery = Buildings.Where(
     i => i.Apartment != null 
     && i.Apartment.Manager != null 
     && i.Apartment.Manager.Name == Username);

我认为我收到了错误,因为我在这里执行了三个单独的查询,因此这个操作将会非常慢。我可以用任何方式优化这项检查吗?

编辑:我从resharper获得“可能多次枚举IEnumerable”。

1 个答案:

答案 0 :(得分:2)

假设ContextProvider.Context.InspectionsDbSetIQueryable,这不会导致IEnumerable的多次枚举。该表达式将被转换为SQL查询并在服务器上执行。您可以通过在行后面加一个断点并将鼠标悬停在baseQuery以查看生成的SQL来检查这一点。

看起来像是来自resharper的假阳性。