在脚本文件中工作的MY F#SQLProvider代码在复制到源文件时失败。具体来说,似乎没有与服务器通信,因为智能感知使我可以查看.fsx文件中的可用表,列等。在.fs文件中不起作用。我在解决方案中引用了FSharp.Data.SqlProvider,并在代码块中将其打开,但是GetDataContext()方法的属性是MIA。该项目引用了FSharp Core 4.6.0。
module DBaseTest
open FSharp.Data.Sql
let [<Literal>] connectionString = "Data Source=####;Initial Catalog=####;etc.;etc."
type sql = SqlDataProvider<
DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER,
CaseSensitivityChange = Common.CaseSensitivityChange.ORIGINAL,
ConnectionString = connectionString,
IndividualsAmount = 1000,
UseOptionTypes = true>
let tables = sql.GetDataContext().Dbo <--Dbo unrecognized in the .fs file
我还尝试使用.Net 4.5.1(FSharp Core 4.5.2)启动一个新的控制台应用程序,并且出现相同的错误。 GetDataContext方法没有任何属性(表,列等),并且该文件将无法编译。
open System
open FSharp.Data.Sql
let [<Literal>] connectionString = "Data Source=###;Initial Catalog=###;..."
type sql = SqlDataProvider<
DatabaseVendor = Common.DatabaseProviderTypes.MSSQLSERVER,
CaseSensitivityChange = Common.CaseSensitivityChange.ORIGINAL,
ConnectionString = connectionString,
IndividualsAmount = 1000,
UseOptionTypes = true>
let table = sql.GetDataContext().Dbo //property Dbo not found
let testQuery =
query{
for rows in table.Organization do
where (rows.OrgName = "ASME")
select rows
} |> Seq.toArray
let firstRow = testQuery.[0].PressureLabel
[<EntryPoint>]
let main argv =
printfn "%A" firstRow
Console.Read() |> ignore
0
答案 0 :(得分:0)
出于我的目的,此问题已解决,无需对代码进行任何更改。
我从“ SQLProvider”(R。McKinlay等人,1.1.58)切换为“ SQLProvider.Signed.1.0.40”(Niki Wiles)。
现在,属性在我的源文件中为GetDataContext()方法工作(显示)。