我正在与c#合作一个新项目,我们希望使用entity Framework6,但每次我们都希望基于我们使用的数据库生成模型。但是,当我使用向导生成ADO.Net模型时,在选择数据库和实体框架之后,单击“下一步”按钮,出现窗口来选择表,窗口消失,没有任何类型的错误。
我使用的是visual studio 2017社区版,并且已经安装了mysql连接器v.8.0.11。如果我将mysql连接器版本和实体框架降级到v5,一切都可以正常工作,但在我将连接器和实体框架更新到版本6后。*我得到了上面报告的问题。
发布于 2018-08-04 09:04:51
所以经过3天的努力,我终于找到了问题所在…
因此,您必须从NuGet包版本下载的MySql.Data和MySql.Data.Entity与必须下载的MySql连接器/网络的版本直接相关。
当您查看MySql.Data.Entity的最新版本是6.10.7时,这意味着当下载连接器/NET8时,存在版本不兼容,从而导致ADO.Net数据实体向导关闭。
下载以下内容,BAM它就可以工作了:
MySql for visual studio
MySql Connector/NET v6.10.7 NuGet包:
Entityframework v6.1.3
MySql.Data v6.10.7
MySql.Data.Entity v6.10.7 发布于 2019-03-19 13:14:42
有一件事值得注意:
你将需要不同的Mysql EntityFramework包用于Mysql version6和version8(这可能是为什么发帖者将他/她的mysql连接器从8降级到6)
如果您的mysql连接器是版本8.x.x,您可能需要安装这个NuGet包:https://www.nuget.org/packages/MySql.Data.EntityFramework/
如果您的mysql连接器是版本6.x.x,则需要:https://www.nuget.org/packages/MySql.Data.Entity/
并安装与mysql连接器完全相同的版本。否则,有些东西将无法工作。
发布于 2018-07-05 17:20:06
我可以通过Web.config的以下配置来解决这个问题
<entityFramework>
<defaultConnectionFactory type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.11.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.EntityFramework, Version=8.0.11.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
</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=8.0.11.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D" />
</DbProviderFactories>
</system.data>我还参考了:
https://stackoverflow.com/questions/50234960
复制相似问题