我正在使用Entity Framework 6.1和MySQL Server 5.5.35以及EF Powertools(最新版本)。我能够运行并使用框架,并在应用程序配置文件中注册了所有正确的提供程序详细信息。
我遇到的问题是我无法使用右键单击电源工具函数生成视图,它会不断抛出此异常:
System.Reflection.TargetInvocationException:调用目标抛出了异常。 ---> System.Data.Entity.Core.MetadataException:指定的架构无效。错误: Model1.edmx(7,8):错误0152:找不到具有不变名称“MySql.Data.MySqlClient”的ADO.NET提供程序的实体框架提供程序。确保提供程序已在应用程序配置文件的“entityFramework”部分中注册。
我明白是什么问题,因为我最初在运行我的项目时遇到了这个问题,但是在运行和编译生成视图时它运行正常但是抛出了这个错误。我只能假设Power工具正在寻找其他位置的提供程序而不是我的应用程序配置文件,因为它们已经注册了。
有没有人对提供者列表的位置有任何想法,可能来自全球系统配置文件?我对此并不是很有经验,在搜索了几个小时后却什么都没有。
任何帮助都会受到赞赏或指向正确的方向。 感谢
答案 0 :(得分:0)
首先,尝试使用较低版本的Entity Framework。当我使用MySql时,EF6此时并不支持Mysql。如果您有连接器6.8.x,那么现在显然可用于6.0,但我仍然不确定6.1。 您可以在此处查看信息:EF6.0 connector
有几个原因可能导致: 你确定在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{}