Зависит от того, хотите ли вы фильтровать набор результатов на основе OrderLines
или просто получить к нему доступ из набора результатов.
Скажите, хотите ли вы список Orders
(включая OrderLines
), где OrderLines
стоит не менее 10,00 долларов США и размером 5. Вы можете сделать это:
var orders = ctx
.Orders
.Include("OrderLines")
.Where(x => x.OrderLines.Any(y => y.Cost >= 10.00 && y.Size == 5))
.ToList(); // result is List<Orders> with OrderLines populated.
Если вы только хотите OrderLines
, затем проект строки заказа:
var orders = ctx
.Orders
.Include("OrderLines")
.Where(x => x.OrderLines.Any(y => y.Cost >= 10.00 && y.Size == 5))
.Select(x => x.OrderLines)
.ToList(); // result is List<OrderLine>
Ваша проекция возвращала список анонимных типов с двумя свойствами.Вам необходимо отодвинуть объект со строгим шрифтом, например:
var orders = ctx
.Orders
.Include("OrderLines")
.ToList(); // result is List<Orders> with OrderLines populated
Теперь OrderLines
будет отображаться как ICollection<T>
на каждый ордер.
Например
foreach (var order in orders)
{
Console.Write("Order Id: " + order.OrderId);
foreach (var orderLine in order.OrderLines)
{
Console.Write("Order Line: " + orderLine.OrderLineId);
Console.Write("Order Line Cost: " + orderLine.Cost);
}
}