首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Linq Left join关联后对外表怎么加Where判断

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

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()
           

热点排行