我有tableA和tableB。
我想使用lambda表达式执行左连接。这是相同的sql语句:
SELECT *
FROM tableA A
LEFT JOIN tableB B ON A.userId=B.userId
我怎样才能使用lambda表达式?
答案 0 :(得分:5)
It's usually an error to use an explicit join
in LINQ to Entities.
相反,请使用导航属性:
var q = Context.TableAs.Select(a => new { a.Foo, a.TableB.Bar });
LINQ to Entities将合并空引用。因此,对于a.TableB
中的某些记录,如果null
为TableAs
,那么a.TableB.Bar
将返回null
,而不是为您提供空引用异常。所以它的行为类似于SQL LEFT JOIN