2016-04-26 5 views
5

私はF#SqlDataProviderでデータを照会しようとしているが、私は私のinitコードGROUPBY機能F#GROUPBY - のSystem.Exception:認識されていないメソッド呼び出し

を使用したいとき、私は奇妙なエラーを得た:

r# "packages/FSharp.Data.2.2.5/lib/net40/FSharp.Data.dll" 
r# "packages/SQLProvider.1.0.0/lib/FSharp.Data.SQLProvider.dll" 
r# "packages/FSharp.Data.TypeProviders.5.0.0.2/lib/net40/FSharp.Data.TypeProviders.dll" 

open FSharp.Data 
open FSharp.Data.Sql 
open FSharp.Data.TypeProviders 
open FSharp.Linq 
open System.Text.RegularExpressions 
open System 
open System.Data 

type dbSchema = SqlDataProvider< 
        ConnectionString = "my-connection-string", 
        DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER, 
        IndividualsAmount = 1000, 
        UseOptionTypes = true> 
let db = dbSchema.GetDataContext() 

私のクエリ:

query { 
    for county in db.Dbo.Countries do 
    groupBy county.CountryCode into g 
    select (g.Key, g.Count()) 
    } |> Seq.iter (fun (key, count) -> printfn "%s %d" key count) 

私はこのエラーを得た:

をMicrosoftのMicrosoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter.EvaluateQuotationで認識されていないメソッド呼び出し (FSharpExpr電子)Microsoft.FSharp.Linq.QueryModule.EvalNonNestedInner(CanEliminate canElim、FSharpExpr queryProducingSequence)で :0

のSystem.Exceptionが。 FSharp.Linq.QueryModule.clo @ 1735-1.Microsoft-FSharp-Linq-ForwardDeclarations-IQueryMethods-Executea、 at $ FSI_0003.main @()in C:\ Development \ CountriesParser \ Script1.fsx:36行

36行目はgroupByの正確な行です。

私はこれらのページで読んで、それが動作するはず http://fsprojects.github.io/FSharp.Linq.ComposableQuery/QueryExamples.html https://msdn.microsoft.com/en-us/library/hh225374.aspx

+0

以下、SqlDataConnectionタイプを使用する - あなたは含めることができるライブラリがあなたをしていますどの名前空間が開いていますか?そして 'db'値はどのように作られていますか? –

+0

私の質問を編集し、クエリの前にコードを追加しました。ありがとう –

答えて

2

ありF#のためのさまざまなSQL型プロバイダの数があると私はあなたのコードはgroupBy構文をサポートしていないコミュニティ主導の1つを使用すると思います現時点では。

  1. タイプSqlDataProviderSQLProviderパッケージから来てhere文書化されています。
  2. FSharp.Data.TypeProvidersライブラリ(Visual Studioでも配布されています)はhereと記載されており、SqlDataConnectionタイプを公開しています。
  3. また、(2)の上で使用できる拡張機能であるが、あなたのコードでは使用していない、ComposableQueryライブラリhereが記載されています。

ライブラリ(1)はさまざまな点で優れていますが、まだ完全なクエリ言語をサポートしていないため、おそらく(2)に切り替える必要があります。

はそれを行うために、参照がちょうど FSharp.Data.TypeProviders(あなたは、他の2つのパッケージを必要としない)、その後、私はここにすぐに間違って何も表示されません MSDN Walkthrough on the topic

関連する問題