首頁 > 資料庫 > mysql教程 > 如何在LINQ to SQL中高效率實作IN子查詢?

如何在LINQ to SQL中高效率實作IN子查詢?

Susan Sarandon
發布: 2024-12-27 12:50:21
原創
280 人瀏覽過

How to Efficiently Implement IN Subqueries in LINQ to SQL?

處理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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板