다음을 통해 공유


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 속성을 설정하려고 한 경우. MetadataWorkspaceEntityConnection 인스턴스가 MetadataWorkspace를 매개 변수로 사용하는 오버로드를 통해 생성되거나 EntityConnection 인스턴스가 열렸을 때 초기화됩니다.

잘못된 연결 문자열 키워드를 제공했거나 필요한 연결 문자열 키워드를 제공하지 않은 경우

예제

다음 예제에서는 EntityConnectionStringBuilderSqlConnectionStringBuilder를 함께 사용하는 방법을 보여 줍니다. 속성을 설정 하는 코드를 SqlConnectionStringBuilder 만들려면는 SqlConnection 기본 공급자 연결 문자열의 일부를 제공 하는 문자열입니다. 합니다 Provider 이름을 사용 하 여 설정할 수 없습니다 합니다 SqlConnectionStringBuilder잘못 사용 되지 않으므로, SqlConnection 구문입니다. 코드는 만듭니다는 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 문자열 세미콜론으로 구분 된 키워드/값 매개 변수 쌍의 시퀀스를 구성 합니다. 각 키워드와 해당 값은 등호(=)로 연결됩니다. 다음 표에는 ConnectionString에 포함되는 키워드 값의 올바른 이름이 정리되어 있습니다.

키워드 설명
Provider Name 키워드를 지정하지 않은 경우에 필요합니다. 기본 공급자의 DbProviderFactory 개체를 검색하는 데 사용되는 공급자 이름입니다. 이 값은 상수입니다.

경우는 Name 키워드는 비어 있지 않은 값에 대 한 연결 문자열에 포함 되지 않습니다는 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 키워드에 대해 비어 있지 않은 값이 필요합니다.

이 키워드는 다른 모든 연결 문자열 키워드와 함께 사용할 수 없습니다.

애플리케이션에 키워드/값에 직접 제공할 수는 ConnectionString 속성 또는에 대 한 값을 지정할 수는 Name 키워드입니다. 경우는 Name 키워드를 지정한 경우 연결 문자열 키워드/값은 다음과 같이 애플리케이션 구성 파일에서 검색 됩니다.

Name=AdventureWorksEntities;

경우는 Name 키워드가 사용 되는 ConnectionString 속성을 다른 키워드 허용 되지 않습니다. Name 키워드를 명명된 된 연결 문자열에 저장 된 참조는 connectionStrings 다음 예와에서 같이 애플리케이션 구성 파일 섹션. 합니다 Provider, Metadata, 및 Provider Connection String 값은 런타임에 구성 파일에서 검색 됩니다.

다음 예제와 같이 키워드/값 쌍을 ConnectionString 속성에 직접 지정할 수도 있습니다. 이 경우에 Name 키워드가 사용 되지 않습니다.

"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에서 메타데이터를 잠가야 합니다. 메타데이터가 잠긴 후에는 연결 문자열을 변경할 수 없습니다. 메타데이터가 잠기는 두 가지 시나리오는 다음과 같습니다.

메타데이터가 로드되면 EntityConnection은 개념적 모델, 스토리지 모델 및 매핑 파일이 모두 있는지 확인합니다.

적용 대상

추가 정보