LINQ to SQL Ergebnis aus Methode zurückliefern

25/03/2008 - 09:29 von Holger Vorberg | Report spam
Hallo zusammen,

ich beschàftige mich seit ein paar Tagen mit LINQ und komme dank diverser
Bücher und massenweise Screencasts aus dem Web ganz gut damit zurecht. Aber
eines will mir irgendwie nicht in den Kopf und leider habe ich weder in
Büchern noch in den o.à. Screencasts ein brauchbares Beispiel dafür
gefunden:

Wie gebe ich das Ergebnis einer LINQ to SQL Abfrage als Rückgabewert einer
Methode zurück?
Ich muss doch bei der Definition der Methode einen Typen angeben. Aber
welchen?

Im folgenden Beispiel wird eine Stored Procedure aufgerufen. Das Ergebnis
soll als Rückgabewert aus der Methode "GetData()" zurückgeliefert werden:

public ?????? GetData()
{
MyDataContext DC = new MyDataContext();
var x = DC.sp_GetData();
return x;
}

Wie ist denn jetzt die Methode GetData() zu typisieren?
Muss ich das Ergebnis "x" erst in etwas anderes umwandeln?
In allen Beispielen, die ich bisher gesehen habe, wird "x" sofort in der
Methode verarbeitet (z.B. als Datasource für Controls). Das ist aber nicht
das was ich will.

Tschüß,
Holger Vorberg
 

Lesen sie die antworten

#1 Elmar Boye
25/03/2008 - 11:27 | Warnen spam
Hallo Holger,

Holger Vorberg schrieb:
Wie gebe ich das Ergebnis einer LINQ to SQL Abfrage als Rückgabewert
einer Methode zurück?
Ich muss doch bei der Definition der Methode einen Typen angeben. Aber
welchen?



Wenn die Prozedur einen existierende Klasse zurückliefert,
wie z. B. das klassische GetCustomer(), so kannst Du
im Designer die Klasse vorgeben, ansonsten wird eine
anhand der Rückgabe generiert

Im folgenden Beispiel wird eine Stored Procedure aufgerufen. Das
Ergebnis soll als Rückgabewert aus der Methode "GetData()"
zurückgeliefert werden:

public ?????? GetData()
{
MyDataContext DC = new MyDataContext();
var x = DC.sp_GetData();
return x;
}

Wie ist denn jetzt die Methode GetData() zu typisieren?



Das hàngt davon ab was die Prozedur so alles liefert.
Im gàngigen Fall enthàlt sie ein SELECT, und dann wàre es
ein ISingleResult<T>:
<URL:http://msdn2.microsoft.com/de-de/li...6.aspx>

Bei mehreren Ergebnissen IMultipleResults - was man im LINQ
Umfeld eher vermeiden sollte. Und weiteres dazu:
<URL:http://msdn2.microsoft.com/de-de/li...6.aspx>

Muss ich das Ergebnis "x" erst in etwas anderes umwandeln?



Müssen tust Du gar nichts. Auf der anderen Seite bietet
ISingleResult<T> viele Ableitungen an, um das Ergebnis
wie gewünscht umzuwandeln.

Gruß Elmar

Ähnliche fragen