LinQ Frage

29/09/2009 - 18:43 von Harald Bacik | Report spam
Hallo

Ich binde an eine BindingSource eine LinQ Abfrage, die wie folgt
aussieht:

Dim Auftràge = From Query In
LinqProvider.GetProvider.auftrags _
Where Query.Bewegung = 0 And Query.Kundenid KundenID
Me.bsAuftraege.DataSource = Auftràge

In einer anderen Sub möchte ich dann aus dieser DataSource genauere
Details herausfiltern (wobei diese Details in einem hierachischen Child
der Auftràge liegt)
Ich versuche das wie folgt:


Dim myAuftrag As Voptneucontext.auftrag DirectCast(Me.bsAuftraege.DataSource, Voptneucontext.auftrag)
Auftragssumme += myAuftrag.Auftragdetails.Where(Function(c As
Voptneucontext.Auftragdetail) c.Id = ID).Sum(Function(x As
Voptneucontext.Auftragdetail) x.Preis)

Wobei aber leider schon bei myAuftrag ein Fehler passiert, der da heißt:

Das Objekt des Typs
"Devart.Data.Linq.DataQuery`1[VOPT.Voptneucontext.auftrag]" kann nicht
in Typ "VOPT.Voptneucontext.auftrag" umgewandelt werden.

Wie komme ich aber sonst an diese Daten wieder ran? - Ohne eine neue
DB-Abrage zu starten?

DANKE im Voraus
 

Lesen sie die antworten

#1 Gerold Mittelstädt
30/09/2009 - 14:33 | Warnen spam
Hi,

Harald Bacik schrieb:
Dim myAuftrag As Voptneucontext.auftrag > DirectCast(Me.bsAuftraege.DataSource, Voptneucontext.auftrag)

Wobei aber leider schon bei myAuftrag ein Fehler passiert, der da heißt:

Das Objekt des Typs
"Devart.Data.Linq.DataQuery`1[VOPT.Voptneucontext.auftrag]" kann nicht
in Typ "VOPT.Voptneucontext.auftrag" umgewandelt werden.

Wie komme ich aber sonst an diese Daten wieder ran? - Ohne eine neue
DB-Abrage zu starten?



msAuftraege.DataSource ist eben vom Typ
"Devart.Data.Linq.DataQuery`1[VOPT.Voptneucontext.auftrag]". Die Inhalte
dieses Typen nach "VOPT.Voptneucontext.auftrag" zu Casten (also ohne
Konvertierung oder àhnliches einfach den Typ zu àndern), haut eben nicht
hin. ;)

Dim myAuftrag = bsAuftraege.DataSource.First[OrDefault]()

sollte das machen, was Du willst.

Viele Grüße!

Ähnliche fragen