1

我将 Entity Framework 6.1 与 MySQL Server 5.5.35 和 EF Powertools(最新版本)一起使用。我能够很好地运行和使用框架,并在应用程序配置文件中注册了所有正确的提供程序详细信息。

我遇到的问题是我无法使用右键单击 Power 工具功能生成视图,它不断抛出此异常:

System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.Data.Entity.Core.MetadataException:指定的架构无效。错误:Model1.edmx(7,8):错误 0152:找不到具有不变名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序的实体框架提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分注册。

我理解问的是什么,因为我最初在运行我的项目时遇到了这个问题,但是虽然它在运行和编译生成视图函数时工作正常,但会引发此错误。我只能假设 Power 工具正在寻找其他位置的提供程序,而不是我的应用程序配置文件,因为它们已注册。

有没有人对它可以从哪里获得提供者列表有任何想法,也许来自全局系统配置文件?我对此并没有真正的经验,在搜索了几个小时后一无所获。

任何帮助将不胜感激或指向正确的方向。谢谢

4

1 回答 1

1

第一个原因,尝试使用较低版本的实体框架。当我使用 MySql 时,EF6 暂时不支持 Mysql。如果您有连接器 6.8.x,它现在显然适用于 6.0,但我仍然不确定 6.1。您可以在此处查看信息:EF6.0 连接器

有几个原因可能导致:您确定在 App.config 或 Web.config 中有这样的部分吗?:

<entityFramework>
  <providers>
      <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity" />
      </providers>
</entityFramework>

当我使用 MySql 时,我还必须添加以下代码,不知道为什么,因为我在使用 SQL Server 时不必添加... [DbConfigurationType(typeof(MySql.Data.Entity.MySqlEFConfiguration))] public class DemoContext : DbContext{}

于 2014-09-02T15:29:23.763 回答