Entity Framework: InvalidOperationException при включении нескольких уровней свойств
Я использую ядро Entity Framework. Я пытаюсь создать список продуктов и включить связанные обзоры и обзор данных автора.
У меня есть 3 лица:
public class Product
{
[Key]
public int ID { get; set; }
public ICollection<Review> Reviews {get; set;}
}
public class Review
{
[Key]
public int ID { get; set; }
public Product Product {get; set;}
public Customer Author { get; set; }
}
public class Customer
{
[Key]
public int ID { get; set; }
public ICollection<Review> Reviews { get; set; }
}
Когда, ссылаясь на этот ответ, я запрашиваю список продуктов с отзывами и авторами:
context.Products.Include(p=> p.Reviews.Select(r => r.Author)).ToList();
Выдается следующая ошибка:
System.InvalidOperationException
Сообщение = Выражение свойства 'p => {из Review r в [p].Reviews select [r].Author}' недопустимо. Выражение должно представлять доступ к свойству: 't => t.MyProperty'
Любой совет будет принята с благодарностью.
1 ответ
Решение
Кажется, что-то еще не сделано или отсутствует, но в любом случае вы можете сделать это так:
context.Products.Include(p => p.Reviews).ThenInclude(x=>x.Author).ToList();