Postgresql SqlProvider查询错误,带“0”;无法识别的方法调用";
环境:Postgresql SqlProvider查询错误,带“0”;无法识别的方法调用";,postgresql,f#,type-providers,fsharp.data.typeproviders,Postgresql,F#,Type Providers,Fsharp.data.typeproviders,环境: 视窗10 Postgressql9.5 .NET 4.6.1 Npgsql 3.0.5 SQLProvider 0.0.11-alpha 以下查询: query { for timing in db.Public.Timings do leftOuterJoin sensor in db.Public.Sensors on (timing.Transpondercode = sensor.Sensorcode) into r1
- 视窗10
- Postgressql9.5
- .NET 4.6.1
- Npgsql 3.0.5
- SQLProvider 0.0.11-alpha
query {
for timing in db.Public.Timings do
leftOuterJoin sensor in db.Public.Sensors on (timing.Transpondercode = sensor.Sensorcode) into r1
select timing
}
返回:
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 引用维护人员pezipink 对于外部联接,不支持leftOuterJoin关键字,因为它需要我们实现groupJoin,而groupJoin又需要大量其他尚未完成的工作。如果您的联接是在具有外键设置的字段之间进行的,则可以使用for中的特殊(!!)运算符使其左联接。。语法,例如表1.MyForeignKey中的prod
看起来截至2015年10月15日,SqlProvider不支持leftOuterJoin 引用维护人员pezipink 对于外部联接,不支持leftOuterJoin关键字,因为它需要我们实现groupJoin,而groupJoin又需要大量其他尚未完成的工作。如果您的联接是在具有外键设置的字段之间进行的,则可以使用for中的特殊(!!)运算符使其左联接。。语法,例如表1.MyForeignKey中的prod
我在那里看到的唯一方法调用是
DefaultIfEmpty()
。你试过把它拿走吗?是的,我试过了。存在或不存在该方法调用根本不会更改错误。您是否搜索了带有C#标记的错误(“无法识别的方法调用”)?e、 g我有,但到目前为止还没有发现任何明显适用的。我只是在检查简单类型上是否相等。我没有使用PostgresSQL 9.5,但找到了,解决方案是不使用NuGet版本并从站点安装最新版本。我在那里看到的唯一方法调用是DefaultIfEmpty()
。你试过把它拿走吗?是的,我试过了。存在或不存在该方法调用根本不会更改错误。您是否搜索了带有C#标记的错误(“无法识别的方法调用”)?e、 g我有,但到目前为止还没有发现任何明显适用的。我只检查简单类型是否相等。我不使用Postgressql9.5,但找到了一个解决方案,即不使用NuGet版本并从站点安装最新版本。