select *
from Table1
where TC in (select TC
from Table2
where Application in ('AAA'))`
帮助我将上述查询转换为LINQ。
答案 0 :(得分:1)
如果没有where Application in ('AAA')
部分,这看起来很简单:
from t1 in db.Table1s
where db.Table2s.Select(t2 => t2.TC).Contains(t1.TC)
from t1 in db.Table1s
更新(我多么不对劲!)
List<string> myCollection = new List<string> { "AAA" };
from t1 in db.Table1s
where db.Table2s.Where(t2 => myCollection.Contains(t2.Application)).Select(t2 => t2.TC).Contains(t1.TC)
from t1 in db.Table1s
应该使用代码内集合。
答案 1 :(得分:0)
尝试这种方式
LINQ中没有'In'子查询(到目前为止)。
使用'Any'运算符完成同样的事情。
例如:
与员工位于同一城市的所有客户
from c in db.Customers
where db.Employees.Any(e => e.City == c.City)
select c;
或
.Any()运算符的左侧是子查询。
query.Any(x => predicate)
等同于SQL
EXISTS(
SELECT *
FROM query
WHERE predicate
)
了解更多详情