【发布时间】:2015-03-24 06:33:31
【问题描述】:
我的问题类似于this one,但崩溃发生在稍后。我必须在 SQL Server 和 MySQL 之间互操作 EF 数据库优先模型。更具体地说,我的应用程序根据连接字符串和配置设置(DB_TYPE=MYSQL 等)向 SQL Server 或 MySQL 发起了普通 SQL 查询,两个数据库具有相同的结构并一起维护,因此对一个架构的每次修改都是重新应用到另一个。
现在我使用 SQL Server 数据库优先模型向应用程序添加了 EF 支持。我现在必须也让应用程序在 MySQL 上运行。为了验证老开发人员没有在两个 DBMS 之间留下任何不一致的地方,我尝试Update model against database*,这次我选择了 MySQL 连接到我在 localhost 上的开发数据库。
在我点击下方屏幕上的Next 后,它会简单地崩溃并返回到 EDMX 编辑器
我需要继续这个项目,我已经坚持了一段时间了。
这是我的 Web.config 片段:
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
<parameters>
<parameter value="v11.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.9.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
如何解决我的问题?我为 Visual Studio 重新安装了 MySQL 工具,但没有帮助。
*我使用的是本地化版本的 Visual Studio,所以我不知道所有命令的英文原版
【问题讨论】:
-
我遇到了类似的问题。你有没有找到解决办法?
-
我知道这不是一个答案,但 Database First 并不是访问不同 DBMS 类型的好方法。在 EF7 中不再支持,EF 提供程序很难编写,并且经常会出现类似您的问题。最好的方法是使用 CodeSmith 或类似工具从数据库生成类,然后继续使用 Code First 方法。
-
任何日志中的任何错误?
-
@bubi 对不起,我完全不同意。代码优先对于大型项目和关系数据库来说是一个糟糕的解决方案,并且可以生成需要数百个查询连接的可怕表集。 Database First 允许数据库被视为一等公民,并给予其良好运行所需的所有关心和关注。我参与过许多代码优先项目,都遇到过重大问题。
标签: mysql entity-framework visual-studio-2013