gpt4 book ai didi

f# - 如何使用 F# 中的类型提供程序连接到 SQL Server Compact Edition 4.0?

转载 作者:行者123 更新时间:2023-12-04 14:49:07 24 4
gpt4 key购买 nike

我正在尝试从 F# 连接到 SQL Server Compact Edition 数据库,并尝试使用类型提供程序。这是在 Visual Studio 11 Beta 中,所以我意识到可能因此存在问题,但我认为更有可能是我还没有专业知识。

但是,我注意到 Microsoft.FSharp.Data.TypeProviders 中没有特定于 CE 的类型提供程序,我不确定常规的 SqlDataConnection 是否可以解决问题,因此这可能就是问题所在。

但是,当我尝试创建连接时,IDE 似乎至少认识到我正在尝试访问 CE 数据库。

所以,我有以下代码:

type SqlConnection = 
Microsoft.FSharp.Data.TypeProviders
.SqlDataConnection<ConnectionString = @"Data Source=C:\\Path\\Database.sdf">
let db = SqlConnection.GetDataContext()

所以它是非常标准的,或多或少是直接从添加新的 LINQ to SQL 和类型提供程序项菜单中提取出来的。

我通过连接字符串得到的工具提示是“未安装提供程序‘System.Data.SqlServerCe.3.5’。”向上看似乎表明没有安装 Sql Server CE 是一个问题,但我有库,能够使用常规 SqlCEConnection 连接到数据库并运行 SqlCeCommands 等。由于它是 4.0 而不是 3.5,我不确定它是否在寻找错误的提供者。我在 VS 11 beta 中创建了数据库,所以我认为所有版本都应该匹配等等。

简而言之,我想知道我是否做错了什么,或者 VS11 beta 类型提供程序库是否还不支持 CE 4.0,或者我是否需要做其他事情来实现它。

谢谢!

最佳答案

这个“适用于我的机器”(使用 VS 11 beta, Entity Framework ,基于此处的演练,http://msdn.microsoft.com/en-us/library/hh361038(v=vs.110).aspx:

open System.Data.Linq
open System.Data.EntityClient
open Microsoft.FSharp.Data.TypeProviders

let connectionString = "metadata=res://*/;provider=System.Data.SqlServerCe.4.0;provider connection string='data source=C:\\Data\\SQLCE\\Test\\nw40.sdf';"

type internal edmx = EdmxFile<"NWModel.edmx", ResolutionFolder = @"C:\Users\erik.COMMENTOR\Documents\Visual Studio 11\Projects\TestSqlCeFSharp">

let internal context = new edmx.nw40Model.nw40Entities(connectionString)

query { for supplier in context.Suppliers do
select supplier }
|> Seq.iter (fun supplier -> printfn "%s" supplier.Company_Name)

添加了对以下内容的引用:
FSharp.Data.TypeProviders,
系统.数据.实体,
系统.Data.Linq

关于f# - 如何使用 F# 中的类型提供程序连接到 SQL Server Compact Edition 4.0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10154849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com