2012-03-09 33 views
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」
+2

如果您嘗試使用「數據源= C:\\ Test \\ Test.sdf」,它有什麼不同嗎? – ildjarn 2012-03-09 20:55:32

+0

根據MSDN上的這個例子(http://msdn.microsoft.com/en-us/library/hh361033(v=vs.110).aspx#BKMK_SetUpTypeProv),轉義似乎是正確的,它們也不能逃避反斜槓 – m0sa 2012-03-10 00:00:51

+0

在F#中,如果非轉義版本意味着某些東西,則只需要轉義反斜槓即可。示例中的「\ I」並不代表任何內容,但代碼中的「\ t」表示Tab。但是,我不認爲提供商與CE一起工作 - 我上次嘗試時無法使其工作。 – 2012-03-10 11:36:22

回答

1

我知道這個問題幾年前有人問,但對於未來的參考:

[<Literal>] 
let connection_string [email protected]"Data Source=C:\Test\Test.sdf" 

type dbSchema = SqlDataConnection<connection_string> 
相關問題