Ian*_*ley 53 sql linq linq-to-sql
我有点困惑于此.基本上我想在LINQ to SQL中执行类似以下SQL查询的操作:
SELECT f.*
FROM Foo f
WHERE f.FooId IN (
SELECT fb.FooId
FROM FooBar fb
WHERE fb.BarId = 1000
)
Run Code Online (Sandbox Code Playgroud)
我们将非常感激地提供任何帮助.
谢谢.
aku*_*aku 84
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;
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
Sam*_*ack 59
看看这篇文章.基本上,如果要获得等效的IN,则需要首先构造内部查询,然后使用Contains()方法.这是我翻译的尝试:
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;Run Code Online (Sandbox Code Playgroud)