我正在尝试编写类似于SQL的linq查询:
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。但那会表现好吗?我希望避免在列表中为每个对象调用数据库。
答案 0 :(得分:3)
setVolume()
答案 1 :(得分:1)
试试这样:
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;
或没有加入
var query = from t1 in db.Table1
from t2 in db.Table2
Where t1.ColA == t2.ColA && t1.ColB == t2.ColB
Select t1;