我有这个.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
};
Error 代码: CS0117 . 说明:' SqlConnectionStringBuilder
' does not contain a definition for ' ApplicationIntent
' .
查找该类的元数据,解析为C:\ Program Files(x86)\ Reference Assemblies \ Microsoft \ Framework.NETFramework \ v4.0 \ System.Data.dll, confirms there is no such property .
但是, ApplicationIntent
是MSDN上 SqlConnectionStringBuilder
的属性 . MultiSubnetFailover
的问题相同 .
我错过了什么,是MSDN丢失的东西还是System.Data缺少的东西?
2 回答
两者都作为属性提供,但仅适用于.NET 4.5或更高版本 . 它在.NET 4.0中不存在 .
你可以很容易地看出来 . 在VS中创建一个控制台应用程序项目 .
将以下代码粘贴到
Main
方法中:转到项目设置并将“目标框架”设置更改为以下任何一项(取决于您安装的内容以及您正在使用的VS版本):
.NET Framework 4(=>编译错误)
.NET Framework 4.5(编译)
.NET Framework 4.5.1(编译)
......
您还可以通过查看this文档来查看:
如果可以,将目标框架更改为.NET 4.5或更高版本(即,您的应用程序的所有部署都支持此功能) . 或者,作为解决方法,手动将这些属性添加到生成的连接字符串:
.net framework 4.0中没有“ApplicationIntent”,可从.Net 4.5及更高版本获得 .
将您的应用程序框架版本切换到.Net 4.5 .