我正在尝试将 Entity Framework 5(代码优先)用于 ASP.NET Web 窗体应用程序,我之前使用 MySQL 连接运行了一个基本实现,并且我也成功使用 SQL Server Compact 4 使用桌面应用程序.
我遇到的问题是使用 EF5 我收到错误
在配置中找不到指定的商店提供程序,或无效。
这几乎没有帮助。
升级到 EF6-rc1 给了我更有用的错误
具有不变名称“MySql.Data.MySqlClient”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册,或者无法加载。有关详细信息,请参阅内部异常。
至少我现在知道“问题”是什么。
我遇到的问题是我已经从项目中删除了所有 MySQL 的痕迹,没有理由让项目尝试加载 MySQL 提供程序。
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlCeConnectionFactory, EntityFramework">
<parameters>
<parameter value="System.Data.SqlServerCe.4.0" />
</parameters>
</defaultConnectionFactory>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
<provider invariantName="System.Data.SqlServerCe.4.0" type="System.Data.Entity.SqlServerCompact.SqlCeProviderServices, EntityFramework.SqlServerCompact" />
</providers>
<connectionStrings>
<add name="im_customerdb" connectionString="Data Source=|DataDirectory|\CustomerData.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
这些是我的 web.config 文件的摘录,如果有任何其他相关部分可能指向解决方案,请告诉我。
我已经在解决方案中的每个文件中对 MySQL 一词进行了文本搜索,并且没有对 MySQL 的引用。我已经从源代码控制中检查了项目的干净版本,以确保在清除项目构建文件时没有错过任何文件。
任何人都可以提供任何线索来说明我应该在哪里确定为什么 EF 坚持加载 MySQL 提供程序?
问候, 安东尼
*编辑:*只是补充一点,在第一次访问数据库上下文时抛出异常,从堆栈跟踪中,在初始化数据库时抛出异常。我还注意到一些非常奇怪的东西。数据库文件正在正确创建,似乎 EF 然后拒绝使用它并尝试使用 MySQL。