| 

.NET C# Java Javascript Exception

4
Eine LINQ-Anweisung soll aus einer Methode eine Liste mit Objekten zuzrückgeben.
Welchen Rückgabetyp muss meine Methode haben?? Eine Liste von Mitarbeitern List<Mitarbeiter>
kann ich nicht zurückgeben, da ich ja in den LINQ - Anweisung einen anonymen Typ generiere!
Objects oder List von Obkects möchte ich auch nicht zurückgeben!

public static ??????????  GetPolynome()
{
//Generiert eine Auflistung aller Mitarbeiter aus Abteilung Rechnungswesen.
var x = from p in _db.Mitarbeiter
where p.Abteilung="Rewe"
select public static IEnumerable GetPolynome()
new {p.PersonalNr , Bezeichnung= (p.Vorname+ " - " + p.Nachname) };

return x.ToList();
}
23.03.2011
Maik_1978 674 1 8
Jens Duczmal 2,6k 1 3 9
Ich war so frei und habe ein paar Tags angehangen. Die Frage ist gut und kommt sicher öfter.
Jens Duczmal 24.03.2011
3 Antworten
7
Ich könnt mir mehrere Optionen vorstellen.
1. Die einfachste wär doch die selektion und rückgabe der mitarbeiter selber; also anstatt einen anonymen typ zu generieren selektier doch einfach die mitarbeiter und gib diese als liste zurück.
2. Für die Rückgabe der im Moment codierten Info-Einheiten könntest du eine Klasse bauen und diese dann selektieren und als liste zurückgeben
3. Oder Du verwendest einfach Tupel um die Informationen zurückzugeben; das säh dann ungefähr so aus:
select new Tuple<int, string>(p.PersonalNr, p.Vorname + p.Nachname);
List<Tuple<int, string>> retValue = x.ToList();
23.03.2011
wurzelchen 289 1 5
1
Prima, Möglichkeit Nr. 3 finde ich gut
Maik_1978 23.03.2011
2
Wenn du Tuple.Create statt des Konstruktors verwendest, kannst du die Typ-Inferenz für generische Typ-Parameter nutzen und brauchst nicht extra noch <int, string> angeben.
Jörg W Mittag 23.03.2011
wie Khalid halte ich, Option 2 für die optimale Lösung hier.
Mallen 25.03.2011
0
Von meinem Vorredner würde ich definitiv Variante 2 nehmen. Sollte das Ergebnis der Abfrage mal auf drei Spalten erhöht werden, musst du sonst den bestehenden Code refaktorieren. Mit einer eigenen Klasse bist du da auf der wesentlich sichereren Seite. Zudem ist ein Tuple nicht besonders gut geeignet um eine Liste davon an ein BindingSource zu hängen.
23.03.2011
Khalid 490 2
0
Ich verwende auch nur Version 2. Dies ist zwar beim Erstellen ein wenig arbeitsaufwendiger, doch wenn man hinterher ein Feld mehr braucht, geht's wesentlich schneller. Was ist schon eine Klasse mit 2 Properties....
25.03.2011
Athu 43 5

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH