Linq连表之左连接

时间:2023-01-20 20:55:58

直接上代码了:

1.下部分代码是两个表左连接查询:

var list = from a in db.tableInfos1
           join b in db.tableInfos2 on a.ID equals b.Id into bb
           from bbdata in bb.DefaultIfEmpty()
           select new
           {
               info1=a,
               info2 = bbdata ,
           };

说明:新生成的列表list有两个属性info1,info2。其中info1对应的 tableInfos1 表,info2对应的 tableInfos2 表。

2.若要实现三个表左连接查询:

var list = from a in db.tableInfos1
           join b in db.tableInfo2 on a.ID equals b.Id into bb
           from bbdata in bb.DefaultIfEmpty()
           join c in db.tableInfos3 on a.EID equals c.Id into cc
           from ccdata in cc.DefaultIfEmpty()
           select new
           {
                info1=a,
                info2 = bbdata ,
                info3 = ccdata
           };

若要再增加表,可以照此方法类推。