Ich versuche, Teil einer Abfrage wiederzuverwenden, weil es komplex genug ist, dass ich versuchen möchte, Code-Duplizierung zu vermeiden.Wie können Entity Framework-Abfragen wiederverwendet werden (mit Methoden)?
Es scheint, dass, wenn in einer Abfrage jede Methode aufrufen, werden Sie am Ende:
LINQ to Entities erkennt nicht die Methode {X} Verfahren und diese Methode in einer kann nicht übersetzt werden store Ausdruck
Was ich im Idealfall tun möchte, ist die Verwendung:
var q = from item in context.Items
where item.SomeCondition == true
select new {Item = item, Connections = GetConnections(item)};
GetConnections
ist die Methode, die Abfragen auf item
durchführt. Ich versuche, die (ziemlich komplexe) Abfrage in GetConnections
wiederzuverwenden, aber ich bin nicht sicher, wie man das zur Arbeit bringt.
Aktuelle Signatur von GetConnections ist so etwas wie:
IQuerable<Connection> GetConnections(MyItem item)
Irgendeine Idee, wie man dasselbe macht, wenn man kein 'IQuerable' hat, sondern nur 'Customer '? Ist das überhaupt möglich? –
CustomerWithRecentOrders x = myContext.Customers. Wo (c => c == myCustomer) .Wählen Sie (selector) .Single() –