Как отфильтровать вложенных/детей наборы объектов когда включая их в EF?
Пример: Давайте иметь стандартную ассоциацию Потребительских заказов. Как загрузить всех клиентов и включать только их последние три заказов в их набор Заказов?
Есть ли что-то как функция AssociateWith от L2S для EF?
Нет, к сожалению, API объектных служб в Entity Framework не предоставляет способ выборочной загрузки связанных сущностей в зависимости от условия.
Одним из способов решения этой проблемы является фильтрация связанных объектов при проецировании результатов в запросе:
context.Customers.Select(c => new
{
Customer = c,
LastOrders = c.Orders
.OrderByDescending(o => o.CreatedDate)
.Take(3)
.ToArray()
}
Связанные ресурсы: