检查子对象/孙对象时可能对IEnumerable进行多重枚举

本文关键字:对象 IEnumerable 枚举 孙对象 检查 | 更新日期: 2023-09-27 17:59:54

我有以下查询:

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

我想我得到这个错误是因为我在这里执行三个单独的查询,所以这个操作会非常慢。有什么方法可以优化这个检查吗?

编辑:我得到了"IEnumerable的可能多重枚举"从重拍。

检查子对象/孙对象时可能对IEnumerable进行多重枚举

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

看起来像是重新打磨的假阳性。

相关文章: