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();
Другие вопросы по тегам