Правда в том, что это действительно не имеет значения в этом случае, потому что оба Includes
игнорируются.Вы можете удалить их, и запрос выдаст точно такой же SQL и результат.
Это потому, что Include
действуют только при применении к корневому объекту результата запроса (если есть).Это означает, что они игнорируются для проекционных (Select
) запросов в анонимные / DTO / ViewModel и т. Д. Типы.Рассматриваются только запросы, возвращающие непосредственно типы сущностей, и, как я уже говорил, если Include
s начинаются с этого типа сущности.
Многие люди неправильно понимают назначение Include
s.Они вообще не нужны для правильного функционирования запросов, которые используют свойства навигации для фильтрации, упорядочения, группировки, выбора и т. Д. Все их назначение - Загрузка связанных сущностей .
В вашем примереединственными допустимыми включениями будут свойства навигации Bar
, и они должны быть вставлены после Select(e => e.Bar)
.Их порядок не имеет значения, а также операторы LINQ между Select
и Include
, так как они не меняют тип результата запроса.