EntityConnection.ConnectionString プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
EntityConnection 接続文字列を取得または設定します。
public:
virtual property System::String ^ ConnectionString { System::String ^ get(); void set(System::String ^ value); };
public override string ConnectionString { get; set; }
member this.ConnectionString : string with get, set
Public Overrides Property ConnectionString As String
プロパティ値
データ ソースへの初期接続を確立するために必要な接続文字列。 既定値は空の文字列です。 閉じている接続では、現在の設定値が返されます。 値が設定されていない場合は、空の文字列が返されます。
例外
EntityConnection の MetadataWorkspace を初期化した後に、ConnectionString プロパティを設定しようとしました。 MetadataWorkspace が初期化されるのは、EntityConnection をパラメーターに取るオーバーロードから MetadataWorkspace インスタンスを構築した場合か、または EntityConnection インスタンスが開かれた場合のいずれかです。
無効な接続文字列キーワードが指定されたか、必要な接続文字列キーワードが指定されていません。
例
次の例では、EntityConnectionStringBuilder と SqlConnectionStringBuilder を組み合わせて使用しています。 このコードでは、 のSqlConnectionStringBuilder
プロパティを設定して、SqlConnection基になるプロバイダー 接続文字列の一部を提供する文字列を作成します。 名前はProvider
、有効なSqlConnection
構文を使用しないため、 をSqlConnectionStringBuilder
使用して設定できないことに注意してください。 このコードでは、プロパティを EntityConnection 設定 EntityConnectionStringBuilder
して文字列を作成します。
// Specify the provider name, server and database.
string providerName = "System.Data.SqlClient";
string serverName = ".";
string databaseName = "AdventureWorks";
// Initialize the connection string builder for the
// underlying provider.
SqlConnectionStringBuilder sqlBuilder =
new SqlConnectionStringBuilder();
// Set the properties for the data source.
sqlBuilder.DataSource = serverName;
sqlBuilder.InitialCatalog = databaseName;
sqlBuilder.IntegratedSecurity = true;
// Build the SqlConnection connection string.
string providerString = sqlBuilder.ToString();
// Initialize the EntityConnectionStringBuilder.
EntityConnectionStringBuilder entityBuilder =
new EntityConnectionStringBuilder();
//Set the provider name.
entityBuilder.Provider = providerName;
// Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString;
// Set the Metadata location.
entityBuilder.Metadata = @"res://*/AdventureWorksModel.csdl|
res://*/AdventureWorksModel.ssdl|
res://*/AdventureWorksModel.msl";
Console.WriteLine(entityBuilder.ToString());
using (EntityConnection conn =
new EntityConnection(entityBuilder.ToString()))
{
conn.Open();
Console.WriteLine("Just testing the connection.");
conn.Close();
}
' Specify the provider name, server and database.
Dim providerName As String = "System.Data.SqlClient"
Dim serverName As String = "."
Dim databaseName As String = "AdventureWorks"
' Initialize the connection string builder for the
' underlying provider.
Dim sqlBuilder As New SqlConnectionStringBuilder
' Set the properties for the data source.
sqlBuilder.DataSource = serverName
sqlBuilder.InitialCatalog = databaseName
sqlBuilder.IntegratedSecurity = True
' Build the SqlConnection connection string.
Dim providerString As String = sqlBuilder.ToString
' Initialize the EntityConnectionStringBuilder.
Dim entityBuilder As New EntityConnectionStringBuilder
'Set the provider name.
entityBuilder.Provider = providerName
' Set the provider-specific connection string.
entityBuilder.ProviderConnectionString = providerString
' Set the Metadata location to the current directory.
entityBuilder.Metadata = "res://*/AdventureWorksModel.csdl|" & _
"res://*/AdventureWorksModel.ssdl|" & _
"res://*/AdventureWorksModel.msl"
Console.WriteLine(entityBuilder.ToString)
Using conn As EntityConnection = New EntityConnection(entityBuilder.ToString)
conn.Open()
Console.WriteLine("Just testing the connection.")
conn.Close()
End Using
注釈
EntityClient
接続文字列は、セミコロンで区切られた一連のキーワード (keyword)/値パラメーター ペアで構成されます。 それぞれのキーワードと値の関連付けには、等号 (=) が使用されます。
ConnectionString のキーワード値に有効な名前を次の表に示します。
キーワード | 説明 |
---|---|
Provider |
Name キーワードが指定されていない場合に必要です。 基になるプロバイダーの DbProviderFactory オブジェクトを取得するために使用されるプロバイダー名です。 この値は定数です。キーワード (keyword)が Name 接続文字列に含まれていない場合は、キーワード (keyword)のProvider 空でない値が必要です。 このキーワードは Name キーワードと同時に指定できません。 |
Provider Connection String |
任意。 基になるデータ ソースに渡される、プロバイダー固有の接続文字列を指定します。 この接続文字列は、データ プロバイダーの有効なキーワード/値ペアを使用して表されます。 無効な Provider Connection String がデータ ソースによって評価されると、ランタイム エラーが発生します。このキーワードは Name キーワードと同時に指定できません。Provider Connection String の値は、引用符で囲む必要があります。 次に例を示します。Provider Connection String ="Server=serverName; User ID = userID"; 次に誤った例を示します。 Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Name キーワードが指定されていない場合に必要です。 モデルとマッピング情報を検索するディレクトリ、ファイル、およびリソースの場所のパイプ区切りのリスト。 次に例を示します。Metadata= c:\model | c:\model\sql\mapping.msl; パイプ区切り記号の両側の空白は無視されます。 このキーワードは Name キーワードと同時に指定できません。 |
Name |
アプリケーションは、オプションで、必要なキーワード/値接続文字列値を提供する接続名をアプリケーション構成ファイル内で指定できます。 その場合は、接続文字列内に値を直接記述することはできません。
Name キーワードは、構成ファイル内で使用できません。Name キーワードが接続文字列に含まれていない場合、Provider キーワードの空でない値が必要になります。このキーワードは他のすべての接続文字列キーワードと同時に指定できません。 |
アプリケーションは、プロパティにキーワード (keyword)/値をConnectionString直接指定することも、キーワード (keyword)の値をName
指定することもできます。 キーワード (keyword)をName
指定すると、次のように、アプリケーション構成ファイルから接続文字列 キーワード (keyword)/値が取得されます。
Name=AdventureWorksEntities;
プロパティでName
キーワード (keyword)を使用するConnectionString場合、他のキーワードは使用できません。 キーワード (keyword)はName
、次の例に示すように、アプリケーション構成ファイルの セクションにconnectionStrings
格納されている名前付き接続文字列を参照します。 、Metadata
、および Provider Connection String
のProvider
値は、実行時に構成ファイルから取得されます。
また、キーワード/値ペアは、次の例に示すように、ConnectionString プロパティで直接指定することもできます。 この場合、Name
キーワード (keyword)は使用されません。
"Provider=System.Data.SqlClient;
Metadata=c:\metadata|c:\Metadata\Sql;
Provider Connection String= 'Data Source=localhost;
Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60' "
System.Data.Common.CommandTrees や ObjectContext などのオブジェクトが不注意でメタデータと同期しなくなるのを防ぐため、EntityConnection でそのメタデータをロックする必要があります。 メタデータがロックされると、接続文字列に変更を加えることができなくなります。 メタデータがロックされる 2 つのシナリオを次に示します。
インスタンスはEntityConnection、パラメーターなしのコンストラクター、または接続文字列をEntityConnection(String)受け入れるコンストラクターを介して構築されます。 いずれの場合も、接続が開かれる前に接続文字列が複数回変更される可能性があります。 Open または GetMetadataWorkspace を呼び出すと、メタデータがロックされます。
EntityConnection と EntityConnection(MetadataWorkspace, DbConnection) を受け入れる MetadataWorkspace コンストラクターによって、DbConnection インスタンスが構築された場合。 この場合、メタデータは構築時にロックされます。 接続文字列に変更を加えることはできません。
メタデータが読み込まれると、EntityConnection は、概念モデル、ストレージ モデル、およびマッピング ファイルがすべて存在することを確認します。
適用対象
こちらもご覧ください
.NET