我有两张桌子
我的SQL查询是这样的:
select * from tblArea where areaid
not in (select areaid from
tblUserMaster)
请告诉我如何在linq中编写这样的嵌套查询
答案 0 :(得分:4)
var result = tblArea.Where(x => !tblUserMaster.Any(m => m.areaid == x));
答案 1 :(得分:1)
我找不到任何好办法,比如:
var tb1 = tblUserMaster.ToList();
var result = tblArea.AsEnumerable().Where(x => !tb1.Any(m => m.areaid == x));
但这不是一个好方法,最好编写存储过程而不是将所有数据加载到客户端。可能有人可以做得更好,但我认为无法改善。
AsEnumerable()关键字从linq-> sql转移到纯linq,但它会加载所有数据。
答案 2 :(得分:1)
尝试这个
var result=from tblarea in db.TblArea
where
!
(from tblusermaster in db.TblUserMaster
select new {
tblusermaster.Areaid
}).Contains(new { tblarea.Areaid })
select new {
tblarea.Areaid,
tblarea.Column1,
tblarea.Column2
}