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

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


当前回答

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

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

一切都恢复正常了。

其他回答

当你通过Nuget安装实体框架6时。EntityFramework。SqlServer有时会错过另一个可执行文件。只需将Nuget包添加到该项目。

有时以上对测试项目不起作用

要在测试项目中解决这个问题,只需将这个方法放在测试项目中:

public void FixEfProviderServicesProblem()
{
    var instance = System.Data.Entity.SqlServer.SqlProviderServices.Instance;
}

这个方法从未被调用过,但根据我的观察,编译器将删除所有“不必要的”程序集,而不使用EntityFramework。SqlServer stuff测试失败。

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

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

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

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

只需安装EntityFramework包到您的Web/控制台项目。这应该会将该节添加到配置文件中。

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

删除bin文件夹帮我解决了这个问题