SQL Server Compact 4.0 DbProvider - Нет

Я использую SQL Server Compact/SQLite Toolbox для Visual Studio от ErikEJ. Среда - Windows 7 x64 с Visual Studio 2013.5

Я следую примеру в блоге http://erikej.blogspot.dk/2013/11/entity-framework-6-sql-server-compact-4_25.html но когда я добираюсь до

" ... подключиться к файлу базы данных в папке вашего проекта:",

Я щелкаю правой кнопкой мыши на "Добавить SQL Server Compact/SQLite Connection", и окно появляется, но внизу красный

"Не удается сохранить это соединение для использования с инструментами EF6, убедитесь, что установлен SQL Server Compact DbProvider, и, возможно, перезапустите Visual Studio"

Я возвращаюсь и нажимаю на кнопку О программе и получаю

SQL Server Compact 4.0 in GAC - Yes - 4.0.8482.1 
SQL Server Conpact 4.0 DbProvider - No

SQL Server Compact 4.0 DDEX provider - No 
SQL Server Compact 4.0 Simple DDEX provider - Yes
SQL Server Compact 4.0 Engine Test: PASS!

Я удалил SQL Server Compact и набор инструментов SQL Server Compact и переустановил оба, но у меня все еще есть та же ошибка.

Мне интересно, как я могу получить SQL Server Compact 4.0 DbProvider, чтобы быть да?

Спасибо

Изменить Я добавил детали соответствующей части machine.config, которая может содержать недопустимые записи.

<system.data>
    <DbProviderFactories>
        <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
</system.data>

Я проверил вышеизложенное на примере здесь https://developer.teradata.com/blog/netfx/2010/12/dbproviderfactories-demystified и я не вижу ничего явно неправильного в этой части.

Ага. Я искал не в том месте. В C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config у меня есть

<system.data>
    <DbProviderFactories><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
</system.data>

хммм... другие отсутствуют.

2 ответа

Хорошо, наконец-то мне удалось преодолеть этот пункт.

Я удалил Visual Studio 2013 и SQL Server Express. Я сделал это, прежде чем использовать процедуру, перечисленную здесь https://dba.stackexchange.com/questions/68373/how-to-uninstall-sql-server-2012-not-showing-in-control-panels-programs-and-fe для сервера sql и здесь Как полностью удалить Visual Studio 2010? с помощью

D:\vs_community.exe /uninstall /force

Я делал это раньше и переустанавливал VS2013.5, но я столкнулся с вышеуказанной ошибкой, которая вызвала этот вопрос. Так что следуя дальнейшим советам с вышеупомянутых страниц, я сделал

wmic product where "name like 'microsoft visual studio%'" call uninstall /nointeractive
wmic product where "name like 'microsoft sql server%'" call uninstall /nointeractive

Это вычистило вещи, которые остались позади.

Я также удалил с помощью Revo Uninstaller и использовал его для сканирования любых оставшихся следов на машине. Это также подняло остатки, которые остались позади.

После всего этого я снова установил VS2013.5 и смог заставить SQL Server Compact Toolbox правильно распознавать базу данных без ошибок. Я надеюсь, что это поможет всем, кто сталкивается с той же проблемой.

Я знаю, это старый квест, но, может быть, это кому-нибудь поможет.

У меня была похожая проблема, я получил

Не удается сохранить это соединение для использования с инструментами EF6, убедитесь, что установлен SQL Server Compact DbProvider, и, возможно, перезапустите Visual Studio

И в результате не удалось подключить компонент DataGrid к базе данных. В этом случае просто не забывайте о довольно крутой кнопке Регистрация провайдеров DDEX, предоставленных ErikEJ (большое ему спасибо)

Другие вопросы по тегам