2010-12-15 20 views
40

Es ist spät, also muss das etwas Dummes sein. Ich habe LinqPad an meine Datenbank angeschlossen und kann anscheinend keine Ergebnisse für die einfachsten Abfragen erhalten.LinqPad liefert keine Ergebnisse mit C# -Anweisungen

Wenn ich das ausführe, sagt LinqPad, dass es erfolgreich ausgeführt wurde Nichts wird zurückerstattet.

kann ich den folgenden sehr einfachen Lambda (C# Ausdruck Modus) schreiben:

AppInstances.Select (p => p.AppId) 

und das arbeitet. Warum? Ich würde es vorziehen, die Nicht-Lambda-Query-Building-Funktionalität zu verwenden. Ich bin mir sicher, dass das alles albern ist.

Antwort

62

Ich würde erwarten, dass Sie im Anweisungsmodus etwas wie Anruf q.Dump(); tun müssen, um die Ergebnisse zu sehen.

Aber wenn Sie nur Abfrageausdrücke verwenden möchten, warum tun Sie das nicht im Ausdruckmodus? Verwenden Sie einfach einen Ausdruck:

from app in AppInstances 
select new { 
    AppId = app.AppId 
}; 

Oder, um es zu Ihrem ursprünglichen Lambda-Äquivalent zu machen:

from app in AppInstances 
select app.AppId 
+10

Würden Sie nicht wissen, ich vergesse immer einen Dump zu nehmen? q.Dump() hat den Trick im Anweisungsmodus ausgeführt. Danke John. Habe mir gerade deinen DNR-Podcast angehört und gehe gerade durch dein funktionales Programmierbuch. Sie sind ein echter Wert für die Programmiergemeinschaft. –

Verwandte Themen