Linq Rücksendung Liste von anonymen Typen
Caan somone Beratung der beste Ansatz, um das, was ich versuche zu erreichen (linq to sql, die Rückkehr Liste von Daten in einem grid/Liste etc etc)... Die beschweren sich über anonyme Typ-Konvertierung, und von dem, was ich lese, das ist nicht der elegante Weg, es zu tun.
Public Function GetHistory(ByVal historyId As Integer) As List(Of ?????????)
Using dc As New myDataContext(Application.GetConnection)
Return (From t In dc.ActionTypes, a In t.MyTable Where a.HistoryID = historyId Select a.ActionOn, a.ActionBy, t.Description, a.ImpactedItem, a.ActionDescription).ToList
End Using
End Function
InformationsquelleAutor GordonB | 2009-03-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass ein anonymer Typ nicht über einen compile-Zeit-Typ, den Sie verwenden können, wie Ihr Rückgabewert, die für Sie funktionieren, so??????? in der Liste (????) ist nicht etwas, das immer sein kann, bekannt vom compiler.
Da Sie verbindlich sind diese auf ein UI-element, Ihre beste Wette ist wahrscheinlich zu machen, der Rückgabewert IEnumerable oder IList. Sie sollten in der Lage sein zu binden deiner Kontrolle ist (da Bindung verwendet Reflexion unter der Decke).
InformationsquelleAutor ckramer
Anonyme Typen nicht verlassen kann den Umfang einer Funktion. Also, was Sie zu tun versuchen, ist nicht möglich. Erstellen Sie einen Typ (struct oder Klasse), die Sie verwenden können, eine Rückkehr geben.
InformationsquelleAutor Jakob Christensen
Sehen http://blogs.msdn.com/swiss_dpe_team/archive/2008/01/25/using-your-own-defined-type-in-a-linq-query-expression.aspx
Definieren Sie Ihre eigene Daten-Klasse-Objekt wie z.B. MyClass mit Eigenschaften ActionOn, ActionBy, Beschreibung, ImpactedItem, ActionDescription.
Dann verwenden:
InformationsquelleAutor AndrewD
Können Sie te-linq-Funktion GEWORFEN, dann werfen Sie Ihre Liste als Objekt und kehren Sie ein Aufzählbares Objekt.
InformationsquelleAutor javier
Wenn die Klasse ist die einzige, die werden mit dem Ergebnis (obwohl dies scheint unwahrscheinlich, da man aus der Funktion
Public
), können Sie eine geschachtelte Klasse/struct, um die Ergebnisse aufzunehmen. Ansonsten, was Sie tun möchten, ist das nicht möglich: Anonyme Typen können nur Gültigkeitsbereich der Methode.InformationsquelleAutor John Feminella