比方说,我有这个疑问在SQL:LINQ:将加入与左连接
SELECT
....
FROM
TableA a
JOIN TableB b on a.Id = b.Id
我已经得到了工作得很好的LINQ查询:
var results = (from a in db.TableA
join b in db.TableB on a.Id equals b.Id
select new MyObject {...}).ToList();
但现在我想还要为组合添加左连接。在SQL中:
SELECT
....
FROM
TableA a
JOIN TableB b on a.Id = b.Id
LEFT JOIN TableC c on a.Id2 = c.Id2
我不知道如何在linq查询中处理这个问题。
只需在你的tableB连接后将一行添加到db.TableC上的a.Id中加入c等于c.Id' –
即使TableC现在具有匹配的记录,它的行为就像是LEFT JOIN并包含TableA中的所有行(c .ID2为空)? –
你知道如何编写[LINQ中的左外连接](https://msdn.microsoft.com/en-us/library/bb311040.aspx#Anchor_2),不是吗?就像在查询中没有其他连接一样编写它,例如'在a.Id2上的TableC中加入c等于c.Id2在ac.DefaultIfEmpty()中的c中加入ac' –