Я думаю, вам нужно расширить свой прогноз:
var query = anEntityManager.Products.Where(p => p.Name == "Books")
.Select(p => new
{
Product = p,
OrderDetails = p.OrderDetails.Where(od => od.Quantity > 5),
Details = p.OrderDetails.Where(od => od.Quantity > 5)
.SelectMany(od => od.Details)
});
var results = query.ToList();
var products = results.Select( x => x.Product);
Использование Include
в проекции не поддерживается, поэтому этот (немного некрасивый) код - единственный известный мне способ получить результат в одном запросе к базе данных.
Возможно, вы также можете использовать Select
вместо SelectMany
(тогда Details
будет IEnumerable<IEnumerable<Detail>>
вместо плоского IEnumerable<Detail>
), потому что вы все равно выбрасываете спроецированные свойства - кроме Product
свойство.