在通过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。
当前回答
注意:我在从模型生成数据库Sql时遇到了这个问题。它已经创建了所有的表,但是不能导出更改。您需要注意的是,当您尝试使用DDL生成模板将sql导出为SSDLtoSQL10时,会生成此错误。它期待MySQL连接在这里,所以确保你选择从下拉DDL生成模板SSDLtoMySQL的模型属性。花了一整天的时间!
其他回答
In my case, everything was working properly then suddenly stopped worked because I think Resharper altered some changes which caused the problem. My project was divided into the data layer, service and presentation layer. I had Entity framework installed and referenced in my data layer but still the error didn't go away. Uninstalling and reinstalling didn't work either. Finally, I solved it by making the data layer the Startup project, making migration, updating the database and changing the Startup project back to my presentation layer.
如果你忘记包含"EntityFramework.SqlServer.dll",你也可以看到这个消息。
它似乎是EF6中新添加的文件。最初我没有将它包含在合并模块中,遇到了这里列出的问题。
你不需要在控制台应用程序中安装实体框架,你只需要添加一个对程序集EntityFramework.SqlServer.dll的引用。您可以将此程序集从使用实体框架的类库项目复制到LIB文件夹,并向其添加引用。
总而言之:
类库应用: 安装实体框架 编写数据层代码 app.config文件包含了除了连接字符串之外与实体框架相关的所有配置。 创建一个控制台,web或桌面应用程序: 向第一个项目添加引用。 添加一个对EntityFramework.SqlServer.dll的引用。 app.config /网络。config有连接字符串(记住,配置项的名称必须与DbContext类的名称相同。
这些对我都没用。我确实在另一个stackoverflow问题中找到了解决方案。我将在这里添加它以方便参考:
你需要做一份参考资料,所以它会在申请中被复制 路径。因为稍后它将在运行时被引用。所以你不需要 需要复制任何文件。
private volatile Type _dependency;
public MyClass()
{
_dependency = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
}
在Azure上从CE db迁移到Sql Server时,我遇到了一个相关的问题。浪费了4个小时来解决这个问题。希望这能挽救一些有类似命运的人。对我来说,我的包中有一个对SqlCE的引用。配置文件。删除它解决了我的整个问题,并允许我使用迁移。太棒了,微软又推出了一项存在不必要的复杂设置和配置问题的技术。