Linq to SQL Lambda beitreten

8

Da ich Probleme damit hatte, habe ich versucht, einige Beispiele zu nennen, aber ich verstehe es einfach nicht. Es macht durchaus Sinn, den Nicht-Lambda-Weg zu verwenden, aber wie mache ich einen Join mit Lambda-Ausdrücken?

%Vor%

Ich habe es versucht:

%Vor%

was ich irgendwie durch andere Beispiele auf SO gesehen habe, aber fullData ist Typ IEnumerable<Cat> , also kann ich keine Eigenschaften von Häusern davon abziehen.

    
NibblyPig 28.03.2011, 11:15
quelle

4 Antworten

29
%Vor%

Zugriff über fullData.First().Cat... oder fullData.First().House... .

    
Femaref 28.03.2011, 11:18
quelle
6

Das Problem ist, dass das Ergebnis Ihres Joins - der letzte Parameter der Join-Methode - ein Cat ist. Deshalb ist fullData vom Typ IEnumerable<Cat> . Wenn Sie auf beide zugreifen möchten, geben Sie einen anonymen Typ zurück:

%Vor%     
Daniel Hilgarth 28.03.2011 11:20
quelle
5

Das liegt daran, dass das letzte Argument (a, b) => a bedeutet, dass das Rückgabeergebnis nur den Katzen zugeordnet wird, d. h. es ist (cat, house) => cat

Sie können ein temporäres Objekt mit dem Paar z. B.

zurückgeben %Vor%     
Rup 28.03.2011 11:18
quelle
5

Sie müssen genau definieren, was Sie daraus auswählen möchten.

Sie können Ihre letzte Änderung wie folgt ändern:

%Vor%

was fullData zu einem IQueryable eines anonymen Typs macht, der wie folgt aussieht:

%Vor%

Das Äquivalent im LINQy-Format ist:

%Vor%

Sie können auch genau angeben, was Sie auswählen möchten, um Verschwendung zu vermeiden:

%Vor%     
Jon Hanna 28.03.2011 11:23
quelle

Tags und Links