【发布时间】:2016-04-26 12:17:01
【问题描述】:
我正在尝试使用 F# SqlDataProvider 查询数据,但是当我想使用 groupBy 函数时出现奇怪的错误
我的初始化代码:
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)
我收到了这个错误:
System.Exception:无法识别的方法调用 在 Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter.EvaluateQuotation(FSharpExpr e) 在 Microsoft.FSharp.Linq.QueryModule.EvalNonNestedInner(CanEliminate canElim,FSharpExpr queryProducingSequence) 在 Microsoft.FSharp.Linq.QueryModule.clo@1735-1.Microsoft-FSharp-Linq-ForwardDeclarations-IQueryMethods-Executea,b 在 C:\Development\CountriesParser\Script1.fsx: 36 行中的 .$FSI_0003.main@() 处
第 36 行是 groupBy 的确切行。
正如我在这些页面中所读到的,它应该可以工作 http://fsprojects.github.io/FSharp.Linq.ComposableQuery/QueryExamples.html https://msdn.microsoft.com/en-us/library/hh225374.aspx
【问题讨论】:
-
我在这里没有立即看到任何错误 - 您能否包括您引用的库以及打开的命名空间?
db的价值是如何创造出来的? -
我编辑了我的问题并在查询前添加了代码,谢谢