读书人

Linq Left Join条件,该怎么处理

发布时间: 2013-11-01 14:43:02 作者: rapoo

Linq Left Join条件
本帖最后由 q107770540 于 2013-10-31 14:17:31 编辑 如下SQL的Linq该咋个写?

select A.* from A left join B on (A.c1=B.c1 and B.c2='N')
where A.c3>9

[解决办法]
var query= from a in A.Where(x=>x.c3>9)
join b in B.Where(y=>y.c2=="N")
on a.c1 equals b.c1 into lg
from b in lg.DefaultIfEmpty()
select a;

[解决办法]
关键是 XX.DefaultIfEmpty()

并且要进行异常处理如果XX中的元素是NULL的情况,需要:

from r in o.DefaultIfEmpty()
select new {
ID=r.ID,
Name=(r==null)?"":r.Name
}

读书人网 >.NET

热点推荐