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