TableAdapter 提供程序使用 Microsoft.Data.SqlClient,而不考虑设置的提供程序名称

TableAdapter Provider uses Microsoft.Data.SqlClient regardless of ProviderName being set

提问人:SyndRain 提问时间:11/8/2023 最后编辑:SyndRain 更新时间:11/10/2023 访问量:81

问:

我正在尝试使用 Web.config 中添加的连接字符串创建一个新的 TableAdapter,并且为了最大程度地减少与现有库不兼容的任何可能性,我希望我的提供程序(就像这个旧系统中的所有其他 TableAdapter 一样)。System.Data.SqlClient

但是,当我选择“MyConnection”作为数据连接时,TableAdapter 的提供程序仍设置为 ,这迫使我安装一堆新的相关包。Microsoft.Data.SqlClient

我找不到任何覆盖此connectionString的本地配置文件。我尝试卸载软件包,但是当我创建新的TableAdapter时,它会将其重新安装。我该如何解决这个问题?Microsoft.Data.SqlClient

<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

可能是相关的,但我无法弄清楚如何使其工作:如何让 Microsoft.Data.SqlClient 与数据集设计器一起使用?

.NET SQL 服务器 visual-studio web-config 连接字符串

评论

1赞 AlwaysLearning 11/9/2023
可能与 Visual Studio 2022 相关,它会自动为 Microsoft.Data.SQLClient 添加 NuGet 包
0赞 SyndRain 11/9/2023
哦。。。这是一个坏消息,希望我们不需要从一个迁移到另一个......

答:

0赞 SyndRain 11/10/2023 #1

尽管 Microsoft 发行说明根本没有提到这种行为(至少我找不到任何行为),但自 Visual Studio 2022 以来,它将使用 Microsoft.Data.SqlClient,即使当您添加表适配器或数据集时设置提供程序,这会迫使您安装一堆相关包。(似乎是一个问题,问题#1,问题#2v17.5System.Data.SqlClientMicrosoft.Data.SqlClient)

作为一个非常糟糕的解决方法,我们可以在数据集设计器中新 tableAdapters 的选项卡中手动更改提供程序,即使它仍然会强制安装所有这些新包。properties