Hi,
ich verwende den MSSQL 2008 Server, der mit hilfe des VS2008 und Linq2Sql sehr komfortabel verwaltet werden kann.
Ich bin bisher immer so vorgegangen:
var query = from artikel in context.Artikel
select artikel;
List<Artikel> listArtikel = query.ToList<Artikel>();
So einfach geht dass dann bei einem Join nicht mehr? Muss ich dann meine eigene Klasse bauen, oder gibt es eine Möglichkeit dass mir das VS abnimmt?
Vielen Dank!
Gruß Chriss
Nein, wenn Du die Tabellen weisst, die Du mit einem Join verbinden willst, dann musst Du beide Tabellen in das LinqToSQL reinziehen und den Join von Hand machen.
Bei mir habe ich als Beispiel nur zwei Entitäten genommen.
Der Code dafür sieht so aus:
BurautaisDataContext context = new BurautaisDataContext();
var resourceToDeviceJoin = from r in context.Resources
join
d in context.Devices on r.T_Id equals d.T_Id
select new
{
d.NetBiosName,
d.Os,
r.T_Type
};
resourceToDeviceJoin.ToList().ForEach(e => Console.WriteLine(e.NetBiosName, e.Os, e.T_Type));
Console.ReadKey();
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt
Hi schaedld,
vielen Dank für Deine ausfürhliche Antwort. Ich habe die Klassen mieinander verbunden. Ein erheblicher Vorteil ist jedoch, dass LinqToSql automaitsch eine klasse erstellt, z. B. Ressource. Somit kann ich mir ohne irgendwas zu coden eine Liste (ToList<Ressource>()) von einer Query zurückgeben lassen.
Bei einem Join habe ich keine Klasse RessourceToDevice o. Ä. Folgedessen kann ich das bei einem Join nicht mehr so einfach gestalten?
Danke!
Grüße Chriss
Ausser Du hättest bereits eine View in der Datenbank, welche Deinen Join bereits dort ausführt. Dann hast Du auch in der Linq2ToSQL die Möglichkeit eine Tabelle "reinzuziehen".
Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt