2015-06-19 133 views
0

我使用实体框架6.1.1和我有加入一个表对另一个select语句的查询:实体框架连接表对查询

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

是否有可能写出像这样使用实体框架的查询语法?

回答

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之前加入,然后使用组加入+ DefaultIfEmptyhttps://msdn.microsoft.com/en-us/library/bb397895.aspx

可以使用LINQ执行通过调用DefaultIfEmpty方法左外连接对一个组加入的结果。