Auswählen alle untergeordneten Objekte in Linq
Diese sollte wirklich einfach sein, aber ich kann einfach nicht aus mir selbst, die Benutzeroberfläche ist nicht intuitiv genug... 🙁
Sagen wir, ich habe eine State
Tabelle, und wählen Sie alle Counties
aus mehreren States
. In SQL wäre:
select c.*
from State s join County c on c.StateCode = s.StateCode
where s.TimeZone = -5 -- or some other criteria
Das oben genannte Beispiel ist trivial genug, um zu konvertieren, um Linq in einem statischen Kontext:
var q = MyDataContext.GetTable<County>().Where(c => c.State.TimeZone = -5);
Aber, wo es beginnt, kompliziert ist, wenn ich eine Kontext-sensitive Abfragen, wie die folgenden:
public static List<County> GetCountiesForStates(List<State> states) {
//gotta do something to return all the counties for all these states
}
Nun, ich könnte etwas tun, wie dies innerhalb dieser Methode:
var q = MyDataContext.GetTable<County>().Where(c => states.Contains(c.State));
aber IMO, das ist wirklich unelegant, weil (a) ich habe um eine statische MyDataContext
anstatt die implizite Daten Rahmen der Status-Objekte und (b) Sie sind, nach hinten arbeiten, und wenn Sie beginnen, kompliziert die Abfrage weiter wird es noch hässlicher.
Gibt es eine Möglichkeit das starten der Abfrage mit:
var q = states... //or "from s in states..."
Instinktiv, möchte ich glauben, dass Sie dies tun können, aber ich habe noch nicht den Weg gefunden...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie dies tun:
Dadurch erhalten Sie eine Aufzählung aller Staaten, in allen Ländern. Dies führt zu der folgenden: