实体框架针对查询的连接表

时间:2015-06-19 15:59:44

标签: sql entity-framework jointable

我正在使用Entity Framework 6.1.1,我有一个查询将表连接到另一个select语句:

SELECT *
FROM Table1 T1
LEFT OUTER JOIN (SELECT * FROM Table2 WHERE Field = 123) AS T2 ON T1.Field = T2.Field

是否可以使用Entity Framework的查询语法编写类似的内容?

1 个答案:

答案 0 :(得分:0)

from t1 in Table1
join t2 in Table2.Where(t => t.Field == 123) on t1.Field equals t2.Field into t2j
select new {
    T1 = t1,
    T2 = t2j.DefaultIfEmpty(),
}

您可以在加入前过滤Table2,然后使用https://msdn.microsoft.com/en-us/library/bb397895.aspx中的群组加入+ DefaultIfEmpty

  

您可以使用LINQ通过对组连接的结果调用DefaultIfEmpty方法来执行左外连接。