读书人

Linq Left join关联后对外表怎么加Whe

发布时间: 2013-08-22 10:08:34 作者: rapoo

Linq Left join关联后对外表如何加Where判断?
现在有两个表TableA和TableB。

表TableA 表TableB
ID BID Name ID Name


var query = from a in TableA
join b in TableB
on a.BID equals b.ID into BTable
from btb in BTable.DefaultIfEmpty()
where a.Name = "张三"


以上Linq是A表中BID允许为空,我想取主A表中Name为"张三",且B表中的Name不等于“李四”的数据。
A表与B表是左关联的关系,在Where这个地方该怎么判断?直接用where a.Name = "张三" && btb.Name !="李四"会报NULL错误。 LINQ LeftJoin
[解决办法]
from btb in BTable.DefaultIfEmpty()
修改成
from btb in BTable.DefaultIfEmpty(name=string.Empty)
看看
[解决办法]
var query = from a in TableA.Where(x=>x.Name == "张三")
join b in TableB.Where(y=>y.Name !="李四")
on a.BID equals b.ID into BTable
from btb in BTable.DefaultIfEmpty()

读书人网 >.NET

热点推荐