EntityConnection.ConnectionString プロパティ

定義

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

プロパティ値

データ ソースへの初期接続を確立するために必要な接続文字列。 既定値は空の文字列です。 閉じている接続では、現在の設定値が返されます。 値が設定されていない場合は、空の文字列が返されます。

例外

EntityConnectionMetadataWorkspace を初期化した後に、ConnectionString プロパティを設定しようとしました。 MetadataWorkspace が初期化されるのは、EntityConnection をパラメーターに取るオーバーロードから MetadataWorkspace インスタンスを構築した場合か、または EntityConnection インスタンスが開かれた場合のいずれかです。

無効な接続文字列キーワードが指定されたか、必要な接続文字列キーワードが指定されていません。

次の例では、EntityConnectionStringBuilderSqlConnectionStringBuilder を組み合わせて使用しています。 このコードでは、 の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 StringProvider値は、実行時に構成ファイルから取得されます。

また、キーワード/値ペアは、次の例に示すように、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.CommandTreesObjectContext などのオブジェクトが不注意でメタデータと同期しなくなるのを防ぐため、EntityConnection でそのメタデータをロックする必要があります。 メタデータがロックされると、接続文字列に変更を加えることができなくなります。 メタデータがロックされる 2 つのシナリオを次に示します。

メタデータが読み込まれると、EntityConnection は、概念モデル、ストレージ モデル、およびマッピング ファイルがすべて存在することを確認します。

適用対象

こちらもご覧ください