"unrecognized method call" 的 SqlProvider 查询错误

SqlProvider query errors with "unrecognized method call"

环境:

以下查询:

 query {
        for timing in db.Public.Timings do
        leftOuterJoin sensor in db.Public.Sensors on (timing.Transpondercode = sensor.Sensorcode) into r1            
        select timing
    }        

returns:

System.Exception: unrecognised method call
at Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter.EvaluateQuotation(FSharpExpr e)
at Microsoft.FSharp.Linq.QueryModule.EvalNonNestedInner(CanEliminate canElim, FSharpExpr queryProducingSequence)   
at Microsoft.FSharp.Linq.QueryModule.clo@1735-1.Microsoft-FSharp-Linq-ForwardDeclarations-IQueryMethods-Execute[a,b](FSharpExpr`1 )
at AlphaFront.Db.getTimings(Double startTime, Double endTime) in C:\projects\AlphaFront\AlphaFront\Db.fs:line 488

包括联接在内的其他查询一直运行良好,但这是我尝试过的第一个左联接。

编辑:我已将代码示例简化为最小的重现示例。

从 2015 年 10 月 15 日开始,SqlProvider 不支持 leftOuterJoin

引用来自 github

的维护者 pezipink

For outer joins, the leftOuterJoin keyword is not supported as it requires us to implement groupJoin which in turns requires a bunch of other stuff that has not been done yet. If your join is between fields with foreign keys setup, you can get it to left join by using the special (!!) operator within the for.. syntax, eg for prod in (!!) table1.MyForeignKey do...