我正試圖從F#連接到SQL Server Compact Edition數據庫,並嘗試使用類型提供程序。這是在Visual Studio 11 Beta中,所以我意識到可能會有一個問題,因爲這一點,但我認爲我更可能還沒有專有技術。如何使用F#中的類型提供程序連接到SQL Server Compact Edition 4.0?
但是,我注意到在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型供應商項目菜單中的SQL。
我通過連接字符串獲得的工具提示是「Provider'System.Data.SqlServerCe.3.5'not installed。」看起來似乎表明這是沒有安裝Sql Server CE的問題,但是我有了庫,能夠使用常規的SqlCEConnection連接到數據庫並運行SqlCeCommands等。由於它是4.0而不是3.5,我不確定它是否在尋找錯誤的提供者。我在VS 11測試版中創建了數據庫,所以我認爲所有版本都應該匹配。
所以簡而言之,我想知道如果我做錯了什麼,或者如果VS11 beta類型提供程序庫還不支持CE 4.0,或者如果還有其他事情需要我去做。
謝謝!
直到今天還沒有機會測試。這是一個巨大的幫助,所以謝謝!我還發現,至少在這裏的簡單例子中,沒有必要包含System.Data.EntityClient。一個更緊湊的查詢語法也只是做context.Suppliers |> Seq.iter ...等 – McMuttons 2012-05-09 13:04:58