Скажем, мы хотим, чтобы все блоги и связанные с ними сообщения мы надо бы написать:
Код: Выделить всё
_dbContext.Blogs.Include(b => b.Posts)
Я попытался показать пример ниже. . Здесь проблема возникает в классе BlogViewModel.cs, поскольку вы пытаетесь получить доступ к blogs.Posts, но сообщения не включены в исходный запрос. Поэтому, если вы пытаетесь получить связанные данные, вам придется проверить источник запроса и посмотреть, включен ли он.
Код: Выделить всё
Repository.cs:
public IEnumerable GetBlogs()
{
return _dbContext.Blogs.ToList();
}
Код: Выделить всё
Service.cs:
public IEnumerable GetBlogs()
{
return _repository.Select(x => new BlogViewModel(x));
}
Код: Выделить всё
BlogViewModel.cs:
public class BlogViewModel
{
public BlogViewModel(BlogDbModel blogDbModel)
{
Name = blogDbModel.Name;
Posts = blogDbModel.Posts;
}
public string Name { get; set; }
public IEnumerable
Posts { get; set; }
}
Я подумал о двух вариантах:
- Вместо этого используйте отложенную загрузку
- Всегда возвращайте IQueryable из репозитория
Подробнее здесь: https://stackoverflow.com/questions/563 ... -entity-fr
Мобильная версия