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

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


当前回答

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

其他回答

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

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

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

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

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

您只是缺少了对EntityFramework.SqlServer.dll的引用。对于使用SQL Server的EntityFramework项目,需要引用的两个文件是EntityFramework. sqlserver .dll和EntityFramework.dll

你不需要在控制台应用程序中安装实体框架,你只需要添加一个对程序集EntityFramework.SqlServer.dll的引用。您可以将此程序集从使用实体框架的类库项目复制到LIB文件夹,并向其添加引用。

总而言之:

类库应用: 安装实体框架 编写数据层代码 app.config文件包含了除了连接字符串之外与实体框架相关的所有配置。 创建一个控制台,web或桌面应用程序: 向第一个项目添加引用。 添加一个对EntityFramework.SqlServer.dll的引用。 app.config /网络。config有连接字符串(记住,配置项的名称必须与DbContext类的名称相同。

当错误发生在测试项目时,最漂亮的解决方案是用以下方式装饰测试类:

[DeploymentItem("EntityFramework.SqlServer.dll")]

我刚刚用Nuget重新安装了实体框架。 按照下面链接上的说明操作: http://robsneuron.blogspot.in/2013/11/entity-framework-upgrade-to-6.html

我想问题会解决的。