2017-04-12 10 views
2

私はこの.NET Framework 4.0プロジェクトを持っています。私は参考としてSystem.Dataを追加しました。 文字列を直接使用する代わりに、DbConnectionStringBuilderの接続文字列を作成しようとしています。.NET4.0 SqlConnectionStringBuilderにはApplicationIntentとMultiSubnetFailoverのプロパティがありません

 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に解決:\プログラムファイル(x86の)\のSystem.Data.dll\リファレンスアセンブリ\マイクロソフト\ Framework.NETFramework \ v4.0のは、そのようなプロパティがありません確認

ただし、ApplicationIntentSqlConnectionStringBuilderのプロパティはMSDNです。 MultiSubnetFailoverについても同じ問題が発生します。

何か不足していますか、MSDNに何かが見つからないか、System.Dataに何か不足していますか?

答えて

2

どちらもプロパティとして使用できますが、.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 Framewo RK 4.5.1(コンパイル)
  • ...

あなたはthis文書を見ることであることも確認できます。

次の接続プロパティが、.NET Frameworkの4.5でのSqlClientに追加されました。

  • ApplicationIntent

ターゲットフレームワークを.NET 4.5以上に変更できます(可能な場合)。アプリのすべてのデプロイメントがこれをサポートしています)。回避策として、生成された接続文字列に手動でこれらのプロパティを追加したり、:

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

明らかに4.0のMSDNドキュメントは正確ではありません。それはストリングの連結ではなく私に興味のある不一致です:) –

0

「ApplicationIntentは」.NET Frameworkの4.0では利用できません、それは上記の.Net 4.5とから入手可能です。

アプリケーションフレームワークのバージョンを.Net 4.5に切り替えます。

関連する問題