Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql SqlProvider查询错误,带“0”;无法识别的方法调用";_Postgresql_F#_Type Providers_Fsharp.data.typeproviders - Fatal编程技术网

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版本并从站点安装最新版本。