Ich habe eine Menge Zeit damit verbracht, diese Abfrage richtig zu machen, also hoffe ich, dass StackOverflow mir in die richtige Richtung zeigen kann.Multi-Tabelle LinqToSql Aggregat Funktion
ich drei Tabellen haben:
- Territorien (TerritoryID, TerritoryName usw.)
- UserTerritories (Just a gerrund)
- Benutzer (Benutzer-ID, Username, StatusID)
I müssen alle Gebiete mit einem oder mehreren Benutzern mit einer StatusId von (sagen wir mal) 3.
Alles, was ich wirklich kompilieren konnte, ist die Verknüpfung aller Tabellen :(
IEnumerable<Territory> territories = (from t in db.Territories
join uXt in db.User_x_Territories on t.TerritoryId equals uXt.UserID into tJoin
from uXt in tJoin.DefaultIfEmpty()
join u in db.Users on uXt.UserID equals u.Id into uJoin
from u in uJoin.DefaultIfEmpty()
select t);
Kann mir jemand helfen? Alles, was ich online finden konnte, sind ziemlich einfache Beispiele.
Wird Ihnen das nicht ein kartesisches Produkt geben, wenn Sie mehr als einen qualifizierten Benutzer mit demselben Gebiet haben? –
@Adam Ich aktualisierte es, um mehr Sinn zu machen, aber der Geist bleibt: überprüfen Sie einfach die Beziehungen, wenn es einen Benutzer über die Beziehungen, die eine 3 als Status-ID hat :) – eglasius
+1 für besser lesbar als meine;) –