TableAdapter Provider 使用 Microsoft.Data.SqlClient,无论 ProviderName 设置如何

问题描述 投票:0回答:1

我正在尝试使用 Web.config 中添加的连接字符串创建一个新的 TableAdapter,并尽量减少与现有库不兼容的可能性,我希望我的提供程序是

System.Data.SqlClient
(与此遗留系统中的所有其他 TableAdapter 一样)。

但是,当我选择“MyConnection”作为数据连接时,TableAdapter 的提供程序仍然设置为

Microsoft.Data.SqlClient
,这迫使我安装一堆新的相关软件包。

我找不到任何覆盖此连接字符串的本地配置文件。我尝试卸载

Microsoft.Data.SqlClient
包,但是当我创建新的 TableAdapter 时,它会将其安装回来。我该如何解决这个问题?

<configuration>
  <configSections>
      <connectionStrings>
        <add name="MyConnection" connectionString="Data Source=xxx.xxx.xxx.xxx;
            Initial Catalog=xxx;User ID=xxx;" 
            providerName="System.Data.SqlClient" />
      </connectionStrings>
  </configSections>
<configuration>

注意:我使用的是 Visual Studio 2022 v17.7.4 和 .NET Framework 4.8

可能相关,但我不知道如何使其工作:How to get Microsoft.Data.SqlClient to work with DataSet Designer?

.net sql-server visual-studio web-config connection-string
1个回答
0
投票

尽管 Microsoft 发行说明根本没有提及此行为(至少我找不到任何行为),但自 Visual Studio 2022

v17.5
起,即使提供程序设置为
System.Data.SqlClient
,它也会使用 Microsoft.Data.SqlClient当您添加表适配器或数据集时,这会迫使您安装一堆
Microsoft.Data.SqlClient
相关的软件包。 (似乎是一个问题,Issue#1Issue#2Issue#3

作为一个非常糟糕的解决方法,我们可以在数据集设计器中新 tableAdapters 的

properties
选项卡中手动更改提供程序,即使它仍然会强制安装所有这些新包。

© www.soinside.com 2019 - 2024. All rights reserved.