gpt4 book ai didi

c# - .NET4.0 SqlConnectionStringBuilder 缺少 ApplicationIntent 和 MultiSubnetFailover 属性

转载 作者:行者123 更新时间:2023-11-30 23:14:03 25 4
gpt4 key购买 nike

我有这个 .Net Framework 4.0 项目。我添加了 System.Data 作为引用。我正在尝试使用 DbConnectionStringBuilder 构建连接字符串,而不是直接使用字符串。

        var mssqlcsb = new System.Data.SqlClient.SqlConnectionStringBuilder()
{
DataSource = @"(localdb)\MSSQLLocalDB",
InitialCatalog = "test",
IntegratedSecurity = true,
ConnectTimeout = 30,
Encrypt = false,
TrustServerCertificate = true,
//ApplicationIntent = ApplicationIntent.ReadWrite,
//MultiSubnetFailover = false
};

错误代码:CS0117。说明:“SqlConnectionStringBuilder”不包含“ApplicationIntent”的定义。

查找类的元数据,解析为 C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\System.Data.dll确认不存在此类属性

但是,ApplicationIntentMSDN 上的 SqlConnectionStringBuilder 的属性. MultiSubnetFailover 也有同样的问题。

我是不是遗漏了什么,是 MSDN 遗漏了什么,还是 System.Data 遗漏了什么?

最佳答案

两者都可作为属性使用,但仅限于 .NET 4.5 或更高版本。它在 .NET 4.0 中不存在。

你可以很容易地看到这一点。在 VS 中创建一个控制台应用程序项目。

Main 方法中粘贴以下代码:

        SqlConnectionStringBuilder b = new SqlConnectionStringBuilder();
b.ApplicationIntent = ApplicationIntent.ReadOnly;

转到项目设置并将“目标框架”设置更改为以下任何一项(取决于您安装的内容和您使用的 VS 版本):

  • .NET Framework 4(=> 编译错误)
  • .NET Framework 4.5(编译)
  • .NET Framework 4.5.1(编译)
  • ...

您还可以通过查看 this 来了解这一点文档:

The following connection properties were added to SqlClient in .NET Framework 4.5:

  • ApplicationIntent

如果可以,请将您的目标框架更改为 .NET 4.5 或更高版本(即您的应用程序的所有部署都支持这一点)。或者,作为解决方法,将这些属性手动添加到生成的连接字符串中:

 var mssqlcsb = new System.Data.SqlClient.SqlConnectionStringBuilder()
...
string connectionString = mssqlcsb.ConnectionString + ";ApplicationIntent=ReadWrite";

关于c# - .NET4.0 SqlConnectionStringBuilder 缺少 ApplicationIntent 和 MultiSubnetFailover 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43365958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com