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
속성 값
데이터 원본에 대한 초기 연결을 설정하는 데 필요한 연결 문자열입니다. 기본값은 빈 문자열입니다. 닫힌 연결에서 현재 설정된 값이 반환됩니다. 값이 설정되지 않은 경우 빈 문자열이 반환됩니다.
예외
'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 매개 변수가 없는 생성자 또는 연결 문자열을 EntityConnection(String) 허용하는 생성자를 통해 생성됩니다. 두 경우 모두 연결이 열리기 전에 연결 문자열이 여러 번 변경될 수 있습니다. 메타데이터를 호출 Open 하거나 GetMetadataWorkspace 잠깁니다.
인스턴스는 EntityConnection 생성자를 통해 EntityConnection(MetadataWorkspace, DbConnection) 생성되며 a 및 DbConnectiona MetadataWorkspace 를 허용합니다. 이 경우 메타데이터는 생성 시 잠깁니다. 연결 문자열을 변경할 수 없습니다.
메타데이터가 로드되면 개념적 모델, EntityConnection 스토리지 모델 및 매핑 파일이 모두 있는지 확인합니다.