LINQ to Entity: Verwendung Enthält in der "select" - Teil wirft unerwarteter Fehler

Habe ich eine LINQ-Abfrage gegen ein Entity-Framework-Objekt. Hier ist eine Zusammenfassung der Abfrage:

//a list of my allies
List<int> allianceMembers = new List<int>() { 1,5,10 };

//query for fleets in my area, including any allies (and mark them as such)
var fleets = from af in FleetSource
             select new Fleet 
             {
                 fleetID = af.fleetID,
                 fleetName = af.fleetName,
                 isAllied = (allianceMembers.Contains(af.userID) ? true : false)
             };

Im Grunde, was ich Tue, ist immer eine Reihe von Flotten. Die allianceMembers Liste enthält die Int-Werte aller Benutzer, die verbunden sind mit mir. Ich möchte set isAllied = true, wenn die Flotte der Besitzer ist ein Teil dieser Liste ist, und false sonst.

Wenn ich das Tue, sehe ich eine Ausnahme: "LINQ to Entities erkennt nicht die Methode" Boolean Contains(Int32) "Methode"

Kann ich verstehen, immer diese Fehlermeldung, wenn ich die benutzt hatte, die enthält in der where-Teil der Abfrage, aber warum sollte ich in die Auswahl? Von diesem Punkt würde ich davon ausgehen müsste die Abfrage ausgeführt und zurückgegeben, die Ergebnisse. Dieses kleine Liedchen von code wird nichts eingeengt werden meine Daten an alle.

Irgendwelche Tipps, was ich erreichen kann, was ich brauche, um mit der Einstellung der isAllied Flagge?

Dank

  • Es sollte angemerkt werden, dass Contains werden unterstützt, die nächste version des Entity Framework
InformationsquelleAutor bugfixr | 2009-04-29
Schreibe einen Kommentar