我正在使用 ErikEJ 的用于 Visual Studio 的 SQL Server Compact/SQLite 工具箱。环境是带有 Visual Studio 2013.5 的 Windows 7 x64
我正在关注博客http://erikej.blogspot.dk/2013/11/entity-framework-6-sql-server-compact-4_25.html上的示例,但是当我到达
" ... 连接到项目文件夹中的数据库文件:",
我右键单击“添加 SQL Server Compact/SQLite 连接”并出现该框,但底部为红色
“无法保存此连接以用于 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 Toolbox 并重新安装了两者,但我仍然遇到同样的错误。
我想知道如何让 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>
嗯……其他的都不见了。