我正在尝试从 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,或者我需要做些什么来实现它。
谢谢!