首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用LINQ to SQL处理IN子查询?

如何使用LINQ to SQL处理IN子查询?
EN

Stack Overflow用户
提问于 2008-09-09 07:20:51
回答 9查看 76.4K关注 0票数 55

我有点卡在这上面了。基本上,我想在LINQ to SQL中执行类似以下SQL查询的操作:

代码语言:javascript
复制
SELECT f.* 
FROM Foo f
WHERE f.FooId IN (
    SELECT fb.FooId
    FROM FooBar fb
    WHERE fb.BarId = 1000
)

我们将非常感谢您的帮助。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2008-09-09 08:39:47

看看this article吧。基本上,如果您想获得IN的等价物,则需要首先构造一个内部查询,然后使用Contains()方法。以下是我的翻译尝试:

代码语言:javascript
复制
var innerQuery = from fb in FoorBar where fb.BarId = 1000 select fb.FooId;
var result = from f in Foo where innerQuery.Contains(f.FooId) select f;
票数 65
EN

Stack Overflow用户

发布于 2008-09-09 08:51:33

在LINQ to SQL中实现IN的一般方法

代码语言:javascript
复制
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;

在LINQ to SQL中实现EXISTS的一般方法

代码语言:javascript
复制
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;
票数 87
EN

Stack Overflow用户

发布于 2008-09-09 07:26:53

代码语言:javascript
复制
from f in Foo
    where f.FooID ==
        (
            FROM fb in FooBar
            WHERE fb.BarID == 1000
            select fb.FooID

        )
    select f;
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档