首页 > 数据库 > mysql教程 > 如何在LINQ to SQL中高效实现IN子查询?

如何在LINQ to SQL中高效实现IN子查询?

Susan Sarandon
发布: 2024-12-27 12:50:21
原创
344 人浏览过

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板