具有固定名称'System.Data.SqlClient'的 ADO.NET 提供程序未注册



我有一个.NET Core React Web应用程序,它调用了一个引用实体框架的类库。我使用的是存储在 Azure 中的数据库,每次查询数据库时,都会收到以下异常:

System.ArgumentException:"具有固定名称'System.Data.SqlClient' 的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册,或者无法加载。有关详细信息,请参阅内部例外。

InnerException: ArgumentException:在已注册的 .NET 数据提供程序列表中找不到指定的固定名称"System.Data.SqlClient"。

我认为我的 Web.config/App.config 文件中没有正确配置某些内容,但我不确定。

Web.config我的 Web 应用程序中的文件:

<configuration>
<connectionStrings>
<add name="JATEntities" 
connectionString="Server=tcp:[someserver].database.windows.net,1433;Database=JAT;persist security info=True;user id=[userid];password=[password];MultipleActiveResultSets=True;" 
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

我在课程库中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" />
</configSections>
<connectionStrings>
<add name="JATEntities"  
connectionString="Server=tcp:[someserver].database.windows.net,1433;Database=JAT;persist security info=True;user id=[userid];password=[password];MultipleActiveResultSets=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" 
type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>

下面是我在类库中调用的代码:

public class MyClass 
{
// I've tried this as it seems to have worked for some people
private static string __hack = typeof(SqlProviderServices).ToString();
public void MyMethod()
{
using (var context = new JATEntities())
{
var query = from listing in context.CurrentListings
where listing.Id == id
select listing;
}
}
}

我还将 App.config 文件从我的类库中引用到我的 Web App 项目中,但这似乎没有帮助。


[External Code]
JAT.DB.dll!JAT.DB.Repo.Repo.GetCurrentListingById(int id) Line 22
at C:UsersJunglesourcereposJATJAT.DBRepoRepo.cs(22)
JAT.Client.dll!JAT.Client.Controllers.SearchController.FirstMethod() Line 25
at C:UsersJunglesourcereposJATJAT.ClientControllersSearchController.cs(25)
[External Code]

> 对我有用的是升级到Visual Studio 2019,创建一个新的.Net核心Web应用程序和.net核心类库,然后将我的所有代码从旧解决方案移动到新解决方案中。

相关内容

最新更新