Ari*_*ela 13 c# mysql connector-net entity-framework-6
我有一个使用实体框架6到mysql服务器的asp.net解决方案.
现在我必须在新机器上处理该解决方案,
但我遇到了一些问题:
1)构建解决方案时出现错误:"具有不变名称'MySql.Data.MySqlClient'的ADO.NET提供程序未注册机器或应用程序配置文件".
App.config中:
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
</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.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)
2)打开model.edmx文件时,我收到消息:
"实体模式设计器无法显示您请求的文件".
我在机器上安装了:
1)mysql connector/net 6.9.9
2)mysql for visual studio 1.2.6
3)mysql连接器odbc 5.3.6.
我能做什么?
小智 15
我在互联网上遵循了大多数建议的解决方案但是抱歉所有都失败了.出现问题是因为visual studio缺少MySql连接器而且我已经通过安装mysql-connector-net-7.0.4解决了它(https://downloads.mysql.com/archives/c-net/)
上述解决方案对我不起作用。但是,受此答案的启发,我能够通过删除文件entityFramework中标签下的版本信息来解决此问题Web.config:
<entityFramework>
<defaultConnectionFactory
type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.9.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
</provider>
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
变成:
<entityFramework>
<defaultConnectionFactory
type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6">
</provider>
</providers>
</entityFramework>
Run Code Online (Sandbox Code Playgroud)
ETA:正如本后续文章中所指出的,可能还需要手动编辑文件MySql.Data中的版本Web.config:
<dependentAssembly>
<assemblyIdentity name="MySql.Data" culture="neutral" publicKeyToken="c5687fc88969c44d" />
<bindingRedirect oldVersion="0.0.0.0-6.9.9.0" newVersion="6.9.9.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
小智 5
它对我有用,适用于app.config中的以下部分:
<system.data>
<DbProviderFactories>
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory,MySql.Data" />
</DbProviderFactories>
</system.data>
Run Code Online (Sandbox Code Playgroud)