我正在使用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的查询语法编写类似的内容?
答案 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方法来执行左外连接。