Провайдер: System.Data.SqlServerCe.3.5 не установлен - PullRequest
2 голосов
/ 26 января 2011

Привет, я пытаюсь использовать LINQ с SQL Server CE. Я сгенерировал файл dmbl с помощью SqlMetal, добавил его в проект, а также добавил ссылку на сборку System.Data.SqlServerCe.dll

Мое приложение - WPF на основе .NET4.0 и построено как x86.

На моем компьютере установлен SQL Server CE.

Я попробовал следующий код:

const string connStr = @"Spiri_SQL_CE_DB.sdf";
var dataContext = new Spiri_SQL_CE_DB(connStr);
var testNicks = dataContext.TestNick;

Но я получаю эту ошибку:

Невозможно открыть 'C: \ Users \ Jan \ Documents \ Visual Studio 2010 \ Projects \ C # \ Pokec_Messenger_Project \ Pokec_Messenger \ DB_TEST \ Spiri_SQL_CE_DB.sdf'. Поставщик 'System.Data.SqlServerCe.3.5' не установлен.

Что мне не хватает? Ссылка на какую-то сборку или что-то еще?

ЕСЛИ Я ЗАПОЛНЯЮ ПРИЛОЖЕНИЕ НА .NET3.5, ЭТО РАБОТАЕТ ХОРОШО!

Ответы [ 3 ]

5 голосов
/ 26 января 2011

Вам нужен Microsoft SQL Server Compact 3.5, ссылки для загрузки см. Здесь: http://www.microsoft.com/sqlserver/2005/en/us/compact.aspx

Обычно эта база данных работает только с развертыванием x-copy, поэтому после ее установки на компьютере разработчикаВы можете просто скопировать его в каталог рабочей среды.

3 голосов
/ 16 марта 2012

Это решение отлично сработало, все, что вам нужно, это передать объект SQLCE Connection вместо строки подключения:

const string connStr = @"Spiri_SQL_CE_DB.sdf";
var conn = new System.Data.SqlServerCe.SqlCeConnection(connStr);
var dataContext = new Spiri_SQL_CE_DB(conn);
var testNicks = dataContext.TestNick;
1 голос
/ 30 мая 2013

Если вы запускаете приложение в 64-битных окнах.За исключением установки Microsoft SQL Server Compact 3.5, необходимо, чтобы приложение было процессором x86 только путем изменения цели платформы на x86 в конфигурации сборки, которая находится в свойстве проекта.

...