Я пытаюсь подключиться к базе данных SQL Server Compact Edition из F # и пытаюсь использовать поставщик типов. Это в бета-версии Visual Studio 11, поэтому я понимаю, что из-за этого может возникнуть проблема, но я думаю, что более вероятно, что у меня просто еще нет ноу-хау.
Однако я заметил, что в 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 to SQL с типом поставщика.
Всплывающая подсказка, которую я получаю над строкой подключения, - «Provider 'System.Data.SqlServerCe.3.5' not installed». Это указывает на то, что проблема заключается в том, что Sql Server CE не установлен, но у меня есть библиотеки, я могу подключиться к базе данных с помощью обычного SqlCEConnection и запустить SqlCeCommands и тому подобное. А так как это 4.0, а не 3.5, я не уверен, что он ищет не того провайдера. Я создал базу данных прямо в бета-версии VS 11, поэтому я полагал, что все версии должны совпадать и все такое.
Короче говоря, мне интересно, делаю ли я что-то не так, или библиотеки поставщиков бета-типов VS11 еще не поддерживают CE 4.0, или есть что-то еще, что мне нужно сделать, чтобы это произошло.
Спасибо!