如何将此SQL外部联接转换为LINQ

如何将此SQL外部联接转换为LINQ,sql,linq,Sql,Linq,我想将其转换为Linq: SELECT {fields} FROM tableA AS A LEFT JOIN tableB AS B ON B.Field1 = MyVariable AND ( A.Key = B.Key OR A.Key = B.AlternateKey) 正是这一点或与AND子句结合在一起使我感到困惑 编辑:我可以把解决方案作为扩展方法吗。谢谢,我可以把它作

我想将其转换为Linq:

SELECT      {fields}
FROM        tableA AS A
LEFT JOIN   tableB AS B
ON             B.Field1 = MyVariable
AND            (    A.Key = B.Key
               OR   A.Key = B.AlternateKey)
正是这一点或与AND子句结合在一起使我感到困惑


编辑:我可以把解决方案作为扩展方法吗。

谢谢,我可以把它作为扩展方法吗?
from a in tableA
  from b in tableB.Where(b => b.Field1 == MyVariable && (a.Key == b.Key || a.Key == b.AlternateKey)).DefaultIfEmpty()
  select new { a, b };

tableA.SelectMany(
  a => tableB.Where(b => b.Field1 == MyVariable && (a.Key == b.Key || a.Key == b.AlternateKey)).DefaultIfEmpty()
  .Select(b => new { a, b })
  );