Es hängt davon ab, ob Sie Filter wollen die Ergebnismenge auf der Grundlage der OrderLines
oder einfach darauf zugreifen aus der Ergebnismenge .
sagen, wenn Sie eine Liste der Orders
(mit OrderLines
enthalten) wollte, wo die OrderLines
Kosten mindestens 10,00 $ und einer Größe von 5. Sie dies tun könnte:
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.
Wenn Sie nur wollen, dass die OrderLines
, dann Projekt die Auftragszeilen:
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>
Ihre Projektion wurde eine Liste von anonymen Typen Rückkehr w i mit zwei Eigenschaften. Sie müssen das stark typisierte Objekt, wie diese zurückziehen:
var orders = ctx
.Orders
.Include("OrderLines")
.ToList(); // result is List<Orders> with OrderLines populated
Nun wird OrderLines
als ICollection<T>
auf jede Ordnung ausgesetzt werden.
Z. B
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);
}
}
Gründlich beantwortet meine Frage. Vielen Dank. Stu – hoakey
Ich bin froh zu helfen. :) – RPM1984