在通过nuget下载EF6并尝试运行我的项目后,它返回以下错误:
没有为ADO找到实体框架提供程序。NET提供程序,使用不变名称'System.Data.SqlClient'。确保提供者在应用程序配置文件的“entityFramework”部分中注册。更多信息请参见http://go.microsoft.com/fwlink/?LinkId=260882。
在通过nuget下载EF6并尝试运行我的项目后,它返回以下错误:
没有为ADO找到实体框架提供程序。NET提供程序,使用不变名称'System.Data.SqlClient'。确保提供者在应用程序配置文件的“entityFramework”部分中注册。更多信息请参见http://go.microsoft.com/fwlink/?LinkId=260882。
当前回答
我有同样的问题,只是复制了应用程序配置文件从包含DBContext的项目到我的测试项目
其他回答
您只是缺少了对EntityFramework.SqlServer.dll的引用。对于使用SQL Server的EntityFramework项目,需要引用的两个文件是EntityFramework. sqlserver .dll和EntityFramework.dll
我几乎尝试了以上所有方法,但都没有奏效。
只有当我在默认项目EntityFramework和EntityFramework中设置引用的dll时。SqlServer属性从本地复制到True它开始工作了!
你应该强制一个对EntityFramework.SqlServer.dll程序集的静态引用,但是你可以用一种更漂亮的方式来做到这一点,而不是放置一个虚拟代码:
If you already have a DbConfiguration class: public class MyConfiguration : DbConfiguration { public MyConfiguration() { this.SetProviderServices(System.Data.Entity.SqlServer.SqlProviderServices.ProviderInvariantName, System.Data.Entity.SqlServer.SqlProviderServices.Instance); } } If you don't have a DbConfiguration class you must put the following code at app startup (before EF is used): static MyContext() { DbConfiguration.Loaded += (sender, e) => e.ReplaceService<DbProviderServices>((s, k) => System.Data.Entity.SqlServer.SqlProviderServices.Instance); }
只需安装EntityFramework包到您的Web/控制台项目。这应该会将该节添加到配置文件中。
YourModel扩张。然后打开YourModel.Context.tt下的YourModel.Context.cs类。
我在使用部分添加了以下一行,错误为我修复了。
使用 SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
您可能必须在每次自动生成文件时将这一行添加到文件中。