EF6 for MySql InvalidOperationException

时间:2017-01-20 14:36:44

标签: mysql entity-framework-6

这似乎是一个常见的错误,但我见过的修复工作都没有奏效。我的PC上有两个VS2015 EF6“首先来自数据库的代码”解决方案,它们具有相同的型号和app.config文件。它们都访问同一个数据库。一个运行,另一个抛出此异常。

  

实体框架提供程序类型   'MySql.Data.MySqlClient.MySqlProviderServices,MySql.Data.Entity.EF6'   在ADO.NET提供程序的应用程序配置文件中注册   无法加载不变名称'MySql.Data.MySqlClient'。使   确保使用了程序集限定名称并且程序集是   可用于正在运行的应用程序看到   http://go.microsoft.com/fwlink/?LinkId=260882了解更多信息。

public virtual IList<NamedDbProviderService> DbProviderServices

抛出异常

似乎将工作解决方案从一台PC复制到另一台PC会引发此异常,就像从Git检出解决方案文件一样。我唯一能想到的是NuGet包恢复有问题,但删除或卸载软件包或软件包配置并手动替换它们并不能解决问题。

1 个答案:

答案 0 :(得分:0)

问题似乎是在解析配置时没有加载MySql的EF驱动程序。将以下代码添加到主程序中可以修复它。

    /// <summary>
    /// Force the MySql.Data.Entity Assembly to be loaded
    /// or the app.config file will not load 
    /// No need to call this function
    /// </summary>
    public static void Fix()
    {
        var name = MySql.Data.Entity.MySqlProviderInvariantName.ProviderName;
    }