使用lambda表达式左连接

时间:2011-07-12 14:23:13

标签: c# .net entity-framework lambda

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

SELECT *
FROM tableA A
    LEFT JOIN tableB B ON A.userId=B.userId

我怎样才能使用lambda表达式?

1 个答案:

答案 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中的某些记录,如果nullTableAs,那么a.TableB.Bar将返回null,而不是为您提供空引用异常。所以它的行为类似于SQL LEFT JOIN