实体框架Powertools用Mysql和EF6

本文关键字:EF6 Mysql 框架 Powertools 实体 | 更新日期: 2023-09-27 18:20:26

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

我遇到的问题是,我不能使用右键单击Power tool功能生成视图,它一直抛出这个异常:

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

我理解这个问题,因为我在最初运行项目时遇到了这个问题,但尽管在运行和编译generate-views函数时效果良好,但还是出现了这个错误。我只能假设Power tools正在另一个位置寻找提供商,而不是我的应用程序配置文件,因为它们已经注册了。

有人知道从哪里可以获得提供者列表吗,可能是从全局系统配置文件中获得的吗?我对此并没有真正的经验,经过几个小时的寻找,我一无所获。

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

实体框架Powertools用Mysql和EF6

首先,请尝试使用较低版本的实体框架。当我使用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{}