LINQ to Entities erkennt die Methode Generic.List (int) bis Generic.IEnumerable (int) nicht

Die Datenbank enthält Bestellungen. Bestellungen können in einer Gruppe von Bestellungen enthalten sein. Für jede Gruppe von Bestellungen kann es 1 bis viele Bestellungen enthalten.

Bestellungen konnte jedoch ein NULL-Wert GroupOrderId zugewiesen werden, da vorherige Bestellungen nicht das Gruppierungskonzept hatten. Nur neue Befehle erzwingen das Konzept, einer Gruppe hinzugefügt zu werden.

Die Klassenstruktur, die ausgefüllt werden muss, um Aktionen für jede Bestellung auszuführen, lautet

public class OrdersGroup
{
    public int? GroupOrderId { get; set; }
    public List<int> OrderIds { get; set; }
}

Die Linq-Anweisung

var workPacketOrdersList = (from o in db.Orders
                                    where
                                        o.GroupOrderId >= groupOrderIdMin && o.GroupOrderId <= groupOrderIdMax &&
                                        o.IsDeleted == false
                                    orderby o.WorkPacketId ascending
                                    group o by o.WorkPacketId
                                    into grp
                                    select new OrdersGroup
                                               {
                                                   GroupOrderId = grp.Key,
                                                   OrderIds = grp.Select(g => g.OrderId).ToList()
                                               }).ToList();

Volle Ausnahme

LINQ to Entities does not recognize the method 'System.Collections.Generic.List`1[System.Int32] ToList[Int32](System.Collections.Generic.IEnumerable`1[System.Int32])' method, and this method cannot be translated into a store expression.

Ich sehe, dass der zurückgegebene Typ der Linq-Abfrage a istList<OrdersGroup>.

Wenn die letzte .ToList () in der Abfrage weggelassen wird, wird der Rückgabetyp zu einerIQueryable<OrdersGroup>

Unabhängig davon, welche Aktion als Nächstes ausgeführt wird, ist das Ergebnis eine Ausnahme, dass diese Methode nicht in einen Geschäftsausdruck übersetzt werden kann.

Ich habe versucht, die spezifischen zu entfernenselect new OrdersGroup in eine allgemeinereselect new Führen Sie dann Aktionen für dieses Ergebnis aus, um nur die gleiche Ausnahme für den Geschäftsausdruck zu finden.

Kann jemand einen Einblick geben, wo diese Linq falsch ist?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage