0

Я хочу с нетерпением загрузить некоторые данные, относящиеся к объекту Article.Загрузка нескольких уровней связанных данных в Entity Framework Core не работает должным образом

return await context.Articles 
    .Include(x => x.ArticleTags) 
     .ThenInclude(x => x.Tag) 
      // .ThenInclude(x => x.Value) 
    .Include(x => x.Author) 
     .ThenInclude(x => x.UserInfo) 
    .Include(x => x.Approver) 
     .ThenInclude(x => x.UserInfo) 
    .Include(x => x.Rejecter) 
     .ThenInclude(x => x.UserInfo) 
    .Include(x => x.LinkSubmitter) 
     .ThenInclude(x => x.UserInfo) 
    .FirstOrDefaultAsync(x => x.Id == id); 

В этом объекте объекта все отображаемые свойства могут быть пустыми или пустыми. e.g. no tags, no author, no approver .. etc.

Запрос работает как есть (с прокомментированной строкой).

Однако, если я включаю вложенную ThenInclude(), он терпит неудачу с ошибкой:

System.ArgumentNullException: Value cannot be null. Parameter name: source

Я считаю, что причина этого заключается в том, потому что статья не имеет тегов и он пытается с нетерпением загрузить значения тегов, не существует. Как я могу загрузить все тег-данные, которые могут или не могут существовать для статьи?

+0

Из комментариев выглядит как 'value' свойство' string'. 'Include' /' ThenInclude' используются для надежных данных, связанных с загрузкой, т. Е. Свойств навигации. Он не может использоваться с примитивными свойствами, потому что они загружаются вместе с соответствующим объектом. –

ответ

-1

Попробуйте .Include(x => x.ArticleTags.Tag?.Value)

+0

Запуск в ту же проблему –

+0

Хорошо, попробуйте добавить?. Обновленный ответ – RusArt

+0

Не компилируется для меня –