verwendetes Datenbanksystem: SqlServer 2008
Hallo Gemeinde,
ich brauche mal bitte Hilfe um eine Sql-Abfrage in linq umzusetzen.
Hier die Sql-Abfrage:
Select * From TB_TattooStudio as ts
Inner Join TB_Address as a
On ts.AddressId = a.AddressId
Left Outer Join TB_City as c
On a.CityId = c.CityId
Hier mein Versuch wo ich nicht weiter komme:
context.TB_TattooStudio
.Join
(
context.TB_Address
, ts => ts.AddressId
, a => a.AddressId
, (ts, a) => TattooStudio.Create(ts.TattooStudioId, ts.Name, ts.Manager, ts.ContactId, ts.IsTattooStudio, ts.IsPiercingStudio, ts.IsLocked, ts.IsDeleted, ts.AddressId)
)
.GroupJoin
(
context.TB_City
, temp => temp
, c => c
, (c, temp) => new { city = c, ts = temp }
)
.ToArray();
Hier die Datenbankstruktur:
TB_TattooStudio
AddressId
...
TB_Address
AddressId
CityId
...
TB_City
CityId
...
Ich hoffe die Informationen reichen aus.
Ich empfehl Dir, sowas nicht in Lambda auszudrücken.
Lambda ist bei vielen Fällen zwar die übersichtlichere Variante; bei Verschachtelungen und Join meiner Meinung nach aber nicht.
Nimm einfach den normalen SQL Syntax für Linq in diesem Fall.
Einführung in LINQ-Abfragen (C#)
PS: Eigenschaften eines Objekts ( ts.IsTattooStudio, ts.IsPiercingStudio, ) ist per Enum übrigens deutlich einfacher in der Erweiterbarkeit 😉
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Abt und danke für die Antwort.
Wie sich herausgestellt hat war mein Problem ganz einfach umzusetzen, es lag schlicht weg daran dass ich zu wenig mit linq gemacht habe, so dass ich vergessen hatte das ich ohne joins auf die Beziehungstabellen zugreifen kann... Aber jetzt weiß ichs ja und merke mir das auch 😉