实体框架和CROSS/OUTER应用

tam*_*asf 10 sql sql-server entity-framework cross-apply outer-apply

我想为Entity Framework查询创建一些测试用例,这些测试确实生成包含CROSS APPLY或OUTER APPLY运算符的SQL命令.

有人可以显示出现这些SQL查询的典型场景吗?

usr*_*usr 13

在LINQ 2 SQL中,这总是会导致APPLY:

from t1 in tab1
from t2 in tab2.Where(t2 => t2.SomeCol == t1.SomeCol).Take(1)
select new { t1, t2 }
Run Code Online (Sandbox Code Playgroud)

在EF中,这将失败,或者也会导致APPLY(我不知道哪一个).这是一个需要SQL端的相关APPLY联接.

  • 谢谢!这给了我一个CROSS APPLY查询.此外,如果我使用Take(2).DefaultIfEmpty(),则会创建一个OUTER APPLY查询. (4认同)