Я хочу с нетерпением загрузить некоторые данные, относящиеся к объекту 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
Я считаю, что причина этого заключается в том, потому что статья не имеет тегов и он пытается с нетерпением загрузить значения тегов, не существует. Как я могу загрузить все тег-данные, которые могут или не могут существовать для статьи?
Из комментариев выглядит как 'value' свойство' string'. 'Include' /' ThenInclude' используются для надежных данных, связанных с загрузкой, т. Е. Свойств навигации. Он не может использоваться с примитивными свойствами, потому что они загружаются вместе с соответствующим объектом. –