[EF 6] - как выбрать основную сущность и некоторые из дочерн
От: selkwind  
Дата: 24.01.17 11:45
Оценка:
Вот такие классы, классика жанра:

public class OrderDetail
    {
        public Guid ObjectID { get; set; }
        public DateTime Created { get; set; }
        public string Comments { get; set; }
    }

public class Order
    {
        public Guid ObjectID{ get; set; }
        public  Order PrevOrder { get; set; }
        public List<OrderDetail> OrderDetails { get; set; }
    }


Надо вернуть одним запросом все заказы и 3 последних детали к каждому(они точно есть). Пишу так:

var e1 = ctx.Orders.Include(e => e.OrderDetails .OrderByDescending(c => c.Created).Take(3)).ToList();


На что мне прилетает исключение:

The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.


Как правильно сделать?
Отредактировано 25.01.2017 6:37 AndrewVK . Предыдущая версия .
ef ef6
Re: [EF 6] - как выбрать основную сущность и некоторые из до
От: vorona  
Дата: 24.01.17 13:04
Оценка: +1
Здравствуйте, selkwind, Вы писали:

Можно попробовать
var e1 = ctx.Orders.Select(o => new { Order = o, Details = o.OrderDetails.OrderByDescending(c => c.Created).Take(3) }).ToList();
Отредактировано 24.01.2017 16:35 vorona . Предыдущая версия .
Re[2]: [EF 6] - как выбрать основную сущность и некоторые из до
От: selkwind  
Дата: 25.01.17 10:32
Оценка:
Здравствуйте, vorona, Вы писали:

V>Здравствуйте, selkwind, Вы писали:


V>Можно попробовать

V>
V>var e1 = ctx.Orders.Select(o => new { Order = o, Details = o.OrderDetails.OrderByDescending(c => c.Created).Take(3) }).ToList();
V>


Не компиляется, откуда о брать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.