违反类型的inheritance安全规则:’MySql.Data.Entity.MySqlEFConfiguration’

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

我使用entity framework6和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文件:

   

完成错误:

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

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

exception详细信息:System.TypeLoadException:类型违反的inheritance安全规则:’MySql.Data.Entity.MySqlEFConfiguration’。 派生类型必须与基本类型的安全可访问性匹配,或者不易访问。

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

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

6.9.10我遇到了一些可怕的不稳定问题。 它似乎已从NuGet中删除。 在负载很重的情况下,偶尔会出现“数据库未发现错误”。

请尝试6.9.11。 这对我来说似乎很稳定。 它可以在NuGet上使用。

我这样做了,它对我有用

  1. 从nuget包管理器安装最新版本的entityframwork和mysql.data以及mysql.data.entity

  2. 创建模型databasefirst autogenerate

  3. Unistall mysql.data.entity并安装mysql.data.entity v 6.9.10只需学习如何安装或卸载

在VS 2017社区中将MySql NuGet包从6.9.8升级到6.10.6后,我遇到了同样的问题。 我按照接受的答案的说明并降级回6.9.x修复它。 经过进一步的调查,Oracle已经修复了即将发布的6.10.7版本中的错误( https://bugs.mysql.com/bug.php?id=89134 )。

简而言之,直到6.10.7发布,降级回6.9.x! 我使用Nuget包管理器恢复原状,并且不必更改任何其他内容以使其工作。

VS2017对我来说也一样。 我使用了MySql.Data.Entity v6.9.10
在此之前,我还为.Net版本6.9.10安装了mysql连接器。

  • 之后,我为MySql.Data.Entity安装了NuGet包。
  • 最后一步是相应地修改web.config
    • 连接字符串,
    • entity framework和
    • system.data(请注意,如果你从mysql网站上获取它们,你必须在最后两个版本中更新)
  • 啊,不要忘记我也加了

     DbConfiguration.SetConfiguration(new MySqlEFConfiguration()) 

    在我的应用程序启动。

它终于奏效了:D