有条件加入LINQ?

soo*_*ise 4 c# linq join

我正在尝试编写一个查询,从一个数据库中获取信息并将其连接到另一个数据库中的信息.

TableA
idA
valueA
idB

TableB
idB
valueB
Run Code Online (Sandbox Code Playgroud)

棘手的部分是在TableA中,idB并不总是被定义,所以当我进行普通连接时,我只得到TableA具有idB值的结果.我想要的是能够从TableA中获取所有信息,即使它没有相应的idB值.

Ant*_*ram 5

这是左连接的查询表达式语法版本,以跟进tvanfosson的答案.

var query = from rowA in db.TableA
            join rowB in db.TableB
            on rowA.idB equals rowB.idB into b
            from item in b.DefaultIfEmpty()
            select new
            {
                idA = rowA.idA,
                valueA = rowA.valueA,
                idB = rowA.idB, 
                valueB = item != null ? item.valueB : 0 // or other default value
            };
Run Code Online (Sandbox Code Playgroud)