Ant*_*ony 6 c# asp.net ado.net entity-framework
我试图将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>
Run Code Online (Sandbox Code Playgroud)
<connectionStrings>
<add name="im_customerdb" connectionString="Data Source=|DataDirectory|\CustomerData.sdf" providerName="System.Data.SqlServerCe.4.0" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
这些是我的web.config文件的摘录,请让我知道是否还有其他相关的部分可能指向解决方案。
我已经在解决方案中的每个文件中搜索了单词MySQL的文本,并且没有对MySQL的引用。我已经从源代码管理中检查了项目的干净版本,以确保清除项目构建文件时不会丢失文件。
任何人都可以提供任何线索,确定我应该在哪里确定EF为什么坚持要加载MySQL提供程序?
问候,安东尼
* 编辑:*只是要补充一下,第一次访问数据库上下文时会引发异常,从堆栈跟踪中可以看到,初始化数据库时会引发异常。我也注意到了一些非常奇怪的东西。数据库文件被正确创建,似乎EF然后拒绝使用它并尝试使用MySQL。
问题很老了,但这可能对某人有帮助。
从 Oracle 迁移到 MS SQL Server 时我遇到了同样的问题。最终,代码迁移似乎是问题的根本原因。切换到另一个数据库提供商后,您不能将它们保留原样。因此,您必须为新的数据库提供程序重新生成迁移。
| 归档时间: |
|
| 查看次数: |
5228 次 |
| 最近记录: |