使用lambda表达式左连接

Nao*_*aor 4 .net c# lambda entity-framework

我有tableA和tableB.
我想使用lambda表达式执行左连接.这是相同的sql语句:

SELECT *
FROM tableA A
    LEFT JOIN tableB B ON A.userId=B.userId
Run Code Online (Sandbox Code Playgroud)

我怎么能用lambda表达式做到这一点?

Cra*_*ntz 5

join在LINQ to Entities中使用显式通常是错误的.

而是使用导航属性:

var q = Context.TableAs.Select(a => new { a.Foo, a.TableB.Bar });
Run Code Online (Sandbox Code Playgroud)

LINQ to Entities将合并空引用.因此,如果a.TableBnull某些记录TableAs,则a.TableB.Bar返回null而不是给出空引用异常.所以它的行为就像一个SQLLEFT JOIN