處理LINQ to SQL 中的IN 子查詢
在LINQ to SQL 中利用IN 子查詢是關聯資料的有效方法來自多個表。實作方法如下:
常規IN 查詢實作:
要在LINQ to SQL 中實作IN 查詢,請遵循以下語法:
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;
具體範例:
讓我們重新查看範例SQL 查詢:
SELECT f.* FROM Foo f WHERE f.FooId IN ( SELECT fb.FooId FROM FooBar fb WHERE fb.BarId = 1000 )
在LINQ to SQL 中,這將轉換為:
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;
其他注意事項:
對於EXISTS查詢,您可以使用Any() 方法而不是包含():
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;
以上是如何在LINQ to SQL中高效率實作IN子查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!