다음을 통해 공유


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

속성 값

데이터 원본에 대한 초기 연결을 설정하는 데 필요한 연결 문자열입니다. 기본값은 빈 문자열입니다. 닫힌 연결에서 현재 설정된 값이 반환됩니다. 값이 설정되지 않은 경우 빈 문자열이 반환됩니다.

예외

'MetadataWorkspace가 초기화된 후 EntityConnection속성을 설정 ConnectionString 하려고 했습니다. MetadataWorkspace 인스턴스가 매개 변수로 사용하는 MetadataWorkspace 오버로드를 통해 생성되거나 인스턴스가 열렸을 때 EntityConnection 초기화 EntityConnection 됩니다.

잘못된 연결 문자열 키워드가 제공되었거나 필요한 연결 문자열 키워드가 제공되지 않았습니다.

예제

다음 예제에서는 in과 함께 사용 EntityConnectionStringBuilder 하는 방법을 보여 줍니다 SqlConnectionStringBuilder. 이 코드는 기본 공급자 연결 문자열의 SqlConnectionStringBuilder 일부를 제공하는 문자열을 만들기 SqlConnection 위해 a의 속성을 설정합니다. Provider 이름은 유효한 SqlConnection 구문을 사용하지 않으므로 이름을 사용하여 SqlConnectionStringBuilder설정할 수 없습니다. 이 코드는 속성을 설정 EntityConnectionStringBuilder 하여 문자열을 만듭니다EntityConnection.


// 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 Optional. 기본 데이터 원본에 전달되는 공급자별 연결 문자열 지정합니다. 이 연결 문자열은 데이터 공급자에 유효한 키워드/값 쌍을 사용하여 표현됩니다. 유효하지 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 섹션에 저장된 명명된 연결 문자열을 참조합니다. 및 MetadataProvider Connection String 값은 Provider런타임에 구성 파일에서 검색됩니다.

다음 예제와 같이 키워드/값 쌍을 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' "

메타데이터 EntityConnection 와 같은 System.Data.Common.CommandTrees 개체가 실수로 동기화 또는 ObjectContext 동기화를 중단하지 않도록 하려면 해당 메타데이터를 잠가야 합니다. 메타데이터가 잠긴 후에는 연결 문자열을 변경할 수 없습니다. 다음은 메타데이터가 잠긴 두 가지 시나리오입니다.

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

적용 대상

추가 정보