F# SqlDataConnection TypeProvider не работает с Sql Server Ce

Я играю с новыми поставщиками типов F # в бета-версии VS 11 в Win 8 CP и не могу убедить поставщика типов SqlDataConenction работать с базой данных SqlCe. Код:

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 Server Explorer/Data Connections/Add New Connection/Sql Server CE/Create. Независимо от того, что я пытаюсь, я всегда получаю следующую ошибку:

Поставщик типов «Microsoft.FSharp.Data.TypeProviders.DesignTime.DataProviders» сообщил об ошибке: Ошибка чтения схемы. Ошибка: невозможно открыть «C:\Test\Test.sdf». Поставщик «System.Data.SqlServerCe.3.5» не установлен.

Что я пробовал до сих пор:

  • установил Sql Server Ce 3.5, но ошибка все та же.
  • modified the connection string & added a matching reference to the project:
    • "Provider=System.Data.SqlServerCe.3.5;Data Source=C:\Test\Test.sdf"
    • «Поставщик = System.Data.SqlServerCe.4.0; Источник данных = C:\Test\Test.sdf»

person m0sa♦    schedule 09.03.2012    source источник
comment
Будет ли иначе, если вы попробуете "Data Source=C:\\Test\\Test.sdf"?   -  person ildjarn    schedule 10.03.2012
comment
Согласно этому примеру в MSDN (msdn. microsoft.com/en-us/library/) экранирование кажется правильным, они тоже не экранируют обратную косую черту   -  person m0sa♦    schedule 10.03.2012
comment
В F# экранировать обратную косую черту нужно только в том случае, если версия без экранирования что-то значит. \I в образце ничего не значит, но \t в вашем коде означает Tab. Однако я не думаю, что провайдер работает с CE - я не смог заставить его работать в прошлый раз, когда пытался.   -  person Tomas Petricek    schedule 10.03.2012
comment
@TomasPetricek - провайдер может не работать с CE, но я считаю, что может, поскольку LINQ to SQL поддерживает CE 3.5: msdn.microsoft.com/en-us/library/bb546181.aspx   -  person Stephen Swensen    schedule 31.03.2012
comment
Насколько я могу судить, это не работает с CE. Я задал тот же вопрос несколько дней назад и получил ответ, который, я думаю, означал, что это не работает, но он не ответил на мой запрос о разъяснении. Это можно увидеть здесь: in-f" title="как подключиться к sql server compact edition 4 0 с поставщиком типов в f"> stackoverflow.com/questions/10154849/   -  person McMuttons    schedule 21.04.2012


Ответы (1)


Я знаю, что этот вопрос был задан несколько лет назад, но на будущее:

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

type dbSchema = SqlDataConnection<connection_string>
person Indy9000    schedule 05.03.2015