在通过nuget下载EF6并尝试运行我的项目后,它返回以下错误:

没有为ADO找到实体框架提供程序。NET提供程序,使用不变名称'System.Data.SqlClient'。确保提供者在应用程序配置文件的“entityFramework”部分中注册。更多信息请参见http://go.microsoft.com/fwlink/?LinkId=260882。


当前回答

我有同样的错误。奇怪的是,它只发生在我使用dbContext查询我的任何模型或获得它的列表时:

var results = _dbContext.MyModel.ToList();

我们试图重新安装实体框架,正确引用它,但无济于事。

幸运的是,我们尝试检查Nuget的所有解决方案,然后更新所有内容或确保所有内容都是相同的版本,因为我们注意到两个项目在Web项目上有不同的EF版本。这很有效。错误消失了。

以下是关于如何管理所有解决方案的Nuget的截图:

其他回答

我有同样的问题,只是复制了应用程序配置文件从包含DBContext的项目到我的测试项目

我抛出了相同的异常。我包括

using System.Data; 
using System.Data.Entity;

一切都恢复正常了。

如果你忘记包含"EntityFramework.SqlServer.dll",你也可以看到这个消息。

它似乎是EF6中新添加的文件。最初我没有将它包含在合并模块中,遇到了这里列出的问题。

YourModel扩张。然后打开YourModel.Context.tt下的YourModel.Context.cs类。

我在使用部分添加了以下一行,错误为我修复了。

使用 SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;

您可能必须在每次自动生成文件时将这一行添加到文件中。

在Azure上从CE db迁移到Sql Server时,我遇到了一个相关的问题。浪费了4个小时来解决这个问题。希望这能挽救一些有类似命运的人。对我来说,我的包中有一个对SqlCE的引用。配置文件。删除它解决了我的整个问题,并允许我使用迁移。太棒了,微软又推出了一项存在不必要的复杂设置和配置问题的技术。