我正在使用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 Tools一起使用,请确保已安装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>
嗯......其他的都不见了。
答案 0 :(得分:4)
好的,我终于设法超越了这一点。
我卸载了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 server和How to completely uninstall 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正确识别数据库而不会出错。我希望这可以帮助遇到同样问题的其他人。
答案 1 :(得分:0)
我知道,这是一个古老的任务,但这可能对某人有所帮助。
我有类似的问题,我得到了
无法保存此连接以与EF6 Tools一起使用,请确保SQL 已安装Server Compact DbProvider,并可能重新启动Visual 工作室
因此无法将DataGrid组件连接到数据库。在这种情况下,不要忘记ErikEJ提供的非常酷的按钮注册DDEX提供商(非常感谢他)