违反类型的继承安全规则:'MySql.Data.Entity.MySqlEFConfiguration'

Jam*_*mie 21 c# mysql asp.net-mvc entity-framework

我已经创建了一个asp.net Web应用程序,它应该连接到一个mysql数据库.

我使用实体框架6和ado.net实体数据模型.我还遵循了以下教程:https://dev.mysql.com/doc/connectors/en/connector-net-entityframework60.html#connector-net-ef6-config

但是打电话: DbConfiguration.SetConfiguration(new MySqlEFConfiguration());

导致我的应用程序崩溃.它可能与此特定方法无关,因为创建DBContext也会使应用程序崩溃.

是什么原因造成了这个错误?

  • .NET Framework:4.6.1
  • MySql.Data.Entity.EF6:6.10.4

Web.config文件:

<configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
      <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
    <providers>
      <provider invariantName="MySql.Data.MySqlClient"
                type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6"/>
      <provider invariantName="System.Data.SqlClient"
                type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
    </providers>
  </entityFramework>

<connectionStrings><add name="DatabaseEntities" connectionString="metadata=res://*/Database.Model.csdl|res://*/Database.Model.ssdl|res://*/Database.Model.msl;provider=MySql.Data.MySqlClient;provider connection string=&quot;&quot;" providerName="System.Data.EntityClient" /></connectionStrings><system.data>
    <DbProviderFactories>
      <remove invariant="MySql.Data.MySqlClient" />
      <add description=".Net Framework Data Provider for MySQL" invariant="MySql.Data.MySqlClient" name="MySQL Data Provider" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.4.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
    </DbProviderFactories>
  </system.data>
Run Code Online (Sandbox Code Playgroud)

完成错误:

违反了类型的继承安全规则:'MySql.Data.Entity.MySqlEFConfiguration'.派生类型必须与基本类型的安全可访问性匹配,或者不太容易访问.

描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.

异常详细信息:System.TypeLoadException:类型违反的继承安全规则:'MySql.Data.Entity.MySqlEFConfiguration'.派生类型必须与基本类型的安全可访问性匹配,或者不太容易访问.

Jam*_*mie 38

我将MySql.Data.Entity.EF6降级为旧版本,它解决了我的问题.

  • MySql.Data和MySql.Data.Entity都是6.9.10.MySQL Connector也是6.9.10,MySQL for Visual Studio 1.2.7 (2认同)
  • 降级不是解决方案.甲骨文搞砸了OpenSource.我们所有开发人员都在苦苦 (2认同)

Hun*_* Vu 8

将MySql.Data.Entity从版本6.10.x降级到6.9.10可以解决问题.它解决了我的问题