EntityFramework AsSplitQuery со сложными фильтрами не возвращает определенные свойства навигации при использовании ToLisC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 EntityFramework AsSplitQuery со сложными фильтрами не возвращает определенные свойства навигации при использовании ToLis

Сообщение Anonymous »

У нас есть сложный запрос к сущности под названием Image. У этой сущности много свойств навигации, и мы используем «AsSplitQuery», поскольку в ней много изображений и много таблиц.
Запрос строится следующим образом:

Код: Выделить всё

var query = entity1Repository.Include(x => x.Entity2)
.ThenInclude(x => x.Entity3)
.Include(x => ...)
[...]
.AsSplitQuery();
if( [condition] )
{
query = query.Where(x => ... );
}

if([condition])
{
query = query.Where(x => ... );
}
[more filters]

var image = await query.SingleAsync(x => x.Id == 1234); // Navigation property value for entity2 exist
var result = await query.ToListAsync(); // Navigation property value for entity2 missing for some entity1
Когда запрос инициируется с помощью ToListAsync(), в некоторых объектах (не во всех) отсутствуют значения свойств навигации.
При использовании Single(x => x.Id == ...) тогда свойства навигации загружаются правильно.
Без AsSplitQuery запрос работает нормально, если запрашивается мало данных, иначе время ожидания истекает, и мы не можем его удалить.< /p>
Использование EFCore 7.0.20. SQL-сервер. ASP.NET 6
Конфигурация сущностей работает нормально, вот уже год здесь не о чем сообщать.
Что может быть источником такого поведения?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ific-navig
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»