Linq UNION-Abfrage zu wählen Sie zwei Elemente

Ich wählen wollen 2 Elemente aus meiner Datenbank-Tabelle mit LINQ Abfrage und ich sah, wie ein Beispiel, das die Verwendung UNION ich habe nicht viel Erfahrung, aber ich denke, dass vielleicht das ist, was ich brauche, aber ich bekomme eine Fehlermeldung die ich nicht beheben können und ich bin mir nicht sicher, ob es reparabel trotzdem. So, hier ist meine Abfrage:

    IList<String> materialTypes = ((from tom in context.MaterialTypes
                                   where tom.IsActive == true
                                   select tom.Name)
                                   .Union(from tom in context.MaterialTypes
                                   where tom.IsActive == true
                                   select (tom.ID))).ToList();

Welche, wie es scheint, ist beschweren sich über versuchen, zu verwenden UNION auf IQueryable mit IEnumarebale. Ich habe versucht, dass zu beheben, indem Sie hinzufügen ToString() wie diese - (tom.ID).ToString führte die Reinigung den Fehler unterstreichen in Visual-Studio-2010 aber in der runtime bekomme ich:

{"LINQ to Entities does not recognize the method 'System.String ToString()' method, and this method cannot be translated into a store expression."}

Ty, Leron.

Warum bist du nicht einfach nur die Auswahl new { tom.Name, tom.ID } anstatt Union?
Ich möchte die Daten verwenden, die als meine DataSource wenn ich versuche mit gibt es einen Fehler, dass kann nicht konvertieren, die von anonymen Typ string.Wenn ich ToString() Recht vor .ToList() bekomme ich ein anderes Konvertierung Fehler - dieses mal von char zu String und die Union ist die Lösung, die ich sah, für diese Art von Situationen. Gibt es einen anderen Weg?

InformationsquelleAutor Leron | 2013-02-22

Schreibe einen Kommentar