2009-07-13 4 views
0

In EF ist es möglich, die folgende Zeile zu schreiben:Entity Framework: Finden EntityKey Werte für One-to-Many

orderLine.OrderReference.EntityKey.EntityKeyValues[0].Value 

Weichen Ergebnisse in der ID des zugehörigen OrderReference.

Was wäre die Lösung, wenn ich die IDs der OrderLines wissen wollte, die mit einer Bestellung verbunden sind?

Antwort

1

Der Punkt der Zeile, die Sie anzeigen, ist, die ID ohne loading orderLine.Order zu erhalten. Sie können die IDs einer Sammlung jedoch nicht ohne Laden abrufen. Sehen Sie sich einfach die ID-Eigenschaft an, entweder direkt oder aus dem Kontext.

// from context 
var lineIds = (from o in Context.Orders 
       where o.Id = someId 
       from l in o.Lines 
       select l.Id).AsEnumerable(); 

// from loaded order 
if (!order.Lines.IsLoaded) order.Lines.Load(); 
var lineIds = from l in order.Lines 
       select l.Id; 
+1

Ah ok, ich dachte IDs wurden auch geladen. Da sie in der Tat in verschiedenen Tabellen sind, macht es Sinn überhaupt :). Vielen Dank – Bertvan