我如何写一个存在的子查询使用多列在LINQ
本文关键字:LINQ 查询 何写一 存在 | 更新日期: 2023-09-27 18:13:54
我想写一个linq查询,类似于这个SQL:
SELECT * FROM Table1
WHERE EXISTS (
SELECT 1 FROM Table2
WHERE Table1.ColA = Table2.ColA
AND Table1.ColB = Table2.ColB
)
除了Table2是一个我已经从数据库中得到的对象列表。
我知道如何使用contains()来模拟SQL "IN SUBQUERY"使用数据库外的对象列表时,一列涉及:
var query = from t1 in db.Table1
where MyObjList.Select(o => o.Field1).Contains(t1.Col1)
select t1;
我想我可以在Linq中做一个连接。但这样能行吗?我希望在我的列表中避免每个对象调用数据库
var q = from t1 in db.Table1
from t2 in db.Table2.Where(x => x.ColA == t1.ColA && x.ColB == t1.ColB)
select t1;
试试:
var query = from t1 in db.Table1
join t2 in db.Table2 on t1.ColA equals t2.ColA
Where t1.ColB == t2.ColB
Select t1;
OR没有Join
var query = from t1 in db.Table1
from t2 in db.Table2
Where t1.ColA == t2.ColA && t1.ColB == t2.ColB
Select t1;