Verarbeitung von IN-Unterabfragen in LINQ to SQL
Die Verwendung von IN-Unterabfragen in LINQ to SQL kann eine effiziente Möglichkeit sein, Daten zu korrelieren aus mehreren Tabellen. So gehen Sie vor:
Allgemeine IN-Abfrageimplementierung:
Um eine IN-Abfrage in LINQ to SQL zu implementieren, folgen Sie dieser Syntax:
var q = from t1 in table1 let t2s = from t2 in table2 where <Conditions for table2> select t2.KeyField where t2s.Contains(t1.KeyField) select t1;
Spezifisches Beispiel:
Lassen Sie uns das Beispiel-SQL noch einmal betrachten Abfrage:
SELECT f.* FROM Foo f WHERE f.FooId IN ( SELECT fb.FooId FROM FooBar fb WHERE fb.BarId = 1000 )
In LINQ to SQL würde dies wie folgt übersetzt werden:
var query = from f in db.Foo let fubars = from fb in db.FooBar where fb.BarId == 1000 select fb.FooId where fubars.Contains(f.FooId) select f;
Zusätzliche Überlegungen:
Für EXISTS-Abfragen Sie kann die Any()-Methode anstelle von Contains():
var q = from t1 in table1 let t2s = from t2 in table2 where <Conditions for table2> select t2.KeyField where t2s.Any(t1.KeyField) select t1;
Das obige ist der detaillierte Inhalt vonWie implementiert man IN-Unterabfragen effizient in LINQ to SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!