我有以下查询:
baseQuery = Buildings.Where(
i => i.Apartment != null
&& i.Apartment.Manager != null
&& i.Apartment.Manager.Name == Username);
我认为我收到了错误,因为我在这里执行了三个单独的查询,因此这个操作将会非常慢。我可以用任何方式优化这项检查吗?
编辑:我从resharper获得“可能多次枚举IEnumerable”。
答案 0 :(得分:2)
假设ContextProvider.Context.Inspections
是DbSet
或IQueryable
,这不会导致IEnumerable的多次枚举。该表达式将被转换为SQL查询并在服务器上执行。您可以通过在行后面加一个断点并将鼠标悬停在baseQuery
以查看生成的SQL来检查这一点。
看起来像是来自resharper的假阳性。