相关疑难解决方法(0)

找不到具有不变名称"System.Data.SqlClient"的ADO.NET提供程序的实体框架提供程序

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

没有为ADO.NET提供程序找到具有不变名称"System.Data.SqlClient"的实体框架提供程序.确保提供程序已在应用程序配置文件的"entityFramework"部分中注册.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.

在此输入图像描述

entity-framework

524
推荐指数
13
解决办法
36万
查看次数

无法加载实体框架提供程序类型?

我正在尝试在我的机器上安装的TeamCity上运行我的测试.

System.InvalidOperationException:

实体框架提供程序类型" 为" 'ADO.NET提供程序无法加载.确保提供程序程序集可用于正在运行的应用程序.System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServerVersion=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'System.Data.SqlClient

有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.

我没有参考System.Data.Entity任何我在codeplex上建议升级到EF6的项目.

所以,我不知道为什么我会得到这个例外.当我从VS运行测试时,我没有得到任何这样的异常.

我确实尝试将CopyLocal设置为false然后再次设置为true ..但这似乎也不起作用.

更新

我的app.config有以下内容.这会导致一些我不理解的行为吗?

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
  </configSections>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
</configuration>
Run Code Online (Sandbox Code Playgroud)

我在teamcity中得到以下stacktrace.

[MSTest] IntegrationTests.CrudTest+QuestionTest.Create
[03:59:11][IntegrationTests.CrudTest+QuestionTest.Create] Initialization method IntegrationTests.CrudTest+QuestionTest.Initialize threw exception. System.InvalidOperationException: System.InvalidOperationException: The Entity Framework provider type 'System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' for the 'System.Data.SqlClient' …
Run Code Online (Sandbox Code Playgroud)

c# mstest entity-framework teamcity-7.1 entity-framework-6

406
推荐指数
11
解决办法
26万
查看次数

C#程序正在寻找sql server compact 3.5,但我使用的是4.0

好吧,这个让我很困惑,如果问题的标题不能准确描述我的问题,我会道歉.

我有一个用C#编写的程序,使用Entity Framework和SQL Server CE.我在Windows 7上开发它,它工作正常.我也有一台Windows 8.1机器,我已经测试过它,它也可以正常工作.

但是,在一些Windows 8.1计算机上,程序一旦尝试访问数据库就会崩溃.我收到以下错误:

未处理的异常:System.InvalidOperationException:找不到具有不变名称"System.Data.SqlServerCe.3.5"的ADO.NET提供程序的实体框架提供程序.确保提供程序已在应用程序配置文件的"entityFramework"部分中注册.有关详细信息,请参阅http://go.microsoft.com/fwlink/?LinkId=260882.

现在,这真让我感到困惑,因为我在我的项目中安装了最新的SQL Server CE NuGet包(4.0).我使用SQL Server CE工具箱显式创建SQL Server CE 4.0数据库,我使用应用程序分发了4.0 dll,并且我明确地在my app.configfile(invariantName="System.Data.SqlServerCe.4.0")中列出了4.0版本.

那么,为什么错误说呢System.Data.SqlServerCe.3.5?为什么此错误仅发生在几台Windows 8.1计算机上?

(我还搜索了我的整个解决方案,文本"3.5"甚至没有出现在任何地方.)

我发现了类似的错误,我尝试(从 这个问题)包括这个:

private volatile Type _dependency;

public MyClass()
{
    _dependency = typeof(System.Data.Entity.SqlServer.SqlProviderServices);
}
Run Code Online (Sandbox Code Playgroud)

没有效果,我仍然得到同样的答案.

无论如何,如果有人有任何想法,我会非常感谢任何形式的投入.

c# sql-server-ce-4 sql-server-ce-3.5

5
推荐指数
2
解决办法
1596
查看次数