Search code examples
sqlsql-serverentity-frameworkcross-applyouter-apply

Entity Framework and CROSS/OUTER APPLY


I want to create some test cases for Entity Framework queries that surely generate SQL commands that contain CROSS APPLY or OUTER APPLY operators.

Could someone show typical scenarios where these kind of SQL queries appear?


Solution

  • In LINQ 2 SQL this always results in an APPLY:

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

    In EF this will either fail, or also result in an APPLY (I don't know which one). This is a correlated join which requires an APPLY on the SQL side.