4
我在Win 8 CP的VS 11 Beta中玩弄了新的F#类型提供程序,我无法说服SqlDataConenction类型提供程序使用SqlCe数据库。代码:F#SqlDataConnection类型提供程序不与Sql Server Ce一起工作
open System
open System.Data
open System.Data.Linq
open System.Data.SqlServerCe
open Microsoft.FSharp.Data.TypeProviders
open Microsoft.FSharp.Linq
type dbSchema = SqlDataConnection<"Data Source=C:\Test\Test.sdf">
数据库存在和使用VS11对话框服务器资源管理器创建/数据连接/添加新连接/的SQL Server CE /创建。不管我怎么努力,我总是得到以下错误:
The type provider 'Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders' reported an error: Error reading schema. Error : Cannot open 'C:\Test\Test.sdf'. Provider 'System.Data.SqlServerCe.3.5' not installed.
我试过到目前为止:
- 安装的SQL Server CE 3.5,但错误还是一样。
- 改性连接字符串&加入匹配引用到项目:
- “提供者= System.Data.SqlServerCe.3.5;数据源= C:\测试\ Test.sdf”
- “提供者=系统.Data.SqlServerCe.4.0;数据源= C:\测试\ Test.sdf”
如果您尝试使用“数据源= C:\\ Test \\ Test.sdf”,它有什么不同吗? – ildjarn 2012-03-09 20:55:32
根据MSDN上的这个例子(http://msdn.microsoft.com/en-us/library/hh361033(v=vs.110).aspx#BKMK_SetUpTypeProv),转义似乎是正确的,它们也不能逃避反斜杠 – m0sa 2012-03-10 00:00:51
在F#中,如果非转义版本意味着某些东西,则只需要转义反斜杠即可。示例中的“\ I”并不代表任何内容,但代码中的“\ t”表示Tab。但是,我不认为提供商与CE一起工作 - 我上次尝试时无法使其工作。 – 2012-03-10 11:36:22