EntityConnection.ConnectionString Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera lub ustawia EntityConnection parametry połączenia.
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
Wartość właściwości
Parametry połączenia wymagane do nawiązania początkowego połączenia ze źródłem danych. Wartość domyślna to pusty ciąg. W przypadku zamkniętego połączenia zwracana jest obecnie ustawiona wartość. Jeśli nie ustawiono żadnej wartości, zwracany jest pusty ciąg.
Wyjątki
Podjęto próbę ConnectionString ustawienia właściwości po EntityConnectionzainicjowaniu elementu MetadataWorkspace . Element MetadataWorkspace jest inicjowany, gdy EntityConnection wystąpienie jest konstruowane za pośrednictwem przeciążenia, które przyjmuje MetadataWorkspace jako parametr, lub gdy EntityConnection wystąpienie zostało otwarte.
Podano nieprawidłowe słowo kluczowe parametrów połączenia lub nie podano wymaganego słowa kluczowego parametrów połączenia.
Przykłady
W poniższym przykładzie pokazano, jak używać funkcji EntityConnectionStringBuilder w połączeniu z elementem SqlConnectionStringBuilder. Kod ustawia właściwości elementu , SqlConnectionStringBuilder aby utworzyć SqlConnection ciąg, który dostarcza część parametrów połączenia dostawcy bazowego. Należy pamiętać, że Provider nie można ustawić nazwy przy użyciu elementu , ponieważ nie używa prawidłowej SqlConnectionStringBuilderSqlConnection składni. Kod tworzy EntityConnection ciąg, ustawiając EntityConnectionStringBuilder właściwości.
// 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
Uwagi
Parametry EntityClient połączenia składają się z sekwencji par parametrów słowa kluczowego/wartości rozdzielonych średnikami. Znak równości (=) łączy każde słowo kluczowe i jego wartość. W poniższej tabeli wymieniono prawidłowe nazwy wartości słów kluczowych w ConnectionString.
| Keyword | Opis |
|---|---|
Provider |
Wymagane, jeśli Name słowo kluczowe nie zostało określone. Nazwa dostawcy, która jest używana do pobierania DbProviderFactory obiektu dla podstawowego dostawcy. Ta wartość jest stała.Name Jeśli słowo kluczowe nie jest uwzględnione w parametrach połączenia, wymagana jest niepusta wartość słowa kluczowegoProvider. To słowo kluczowe wzajemnie wyklucza się ze Name słowem kluczowym. |
Provider Connection String |
Opcjonalny. Określa parametry połączenia specyficzne dla dostawcy, które są przekazywane do bazowego źródła danych. Te parametry połączenia są wyrażane przy użyciu prawidłowych par słów kluczowych/wartości dla dostawcy danych.
Provider Connection String Nieprawidłowy błąd spowoduje błąd czasu wykonywania, gdy zostanie on oceniony przez źródło danych.To słowo kluczowe wzajemnie wyklucza się ze Name słowem kluczowym.Wartość Provider Connection String elementu musi być otoczona cudzysłowami. Poniżej przedstawiono przykład:Provider Connection String ="Server=serverName; User ID = userID";Poniższy przykład nie będzie działać: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Wymagane, jeśli Name słowo kluczowe nie zostało określone. Rozdzielana potokiem lista katalogów, plików i lokalizacji zasobów, w których należy szukać informacji o modelu i mapowaniu. Poniżej przedstawiono przykład:Metadata=c:\model | c:\model\sql\mapping.msl;Puste spacje po każdej stronie separatora pionowego są ignorowane. To słowo kluczowe wzajemnie wyklucza się ze Name słowem kluczowym. |
Name |
Aplikacja może opcjonalnie określić nazwę połączenia w pliku konfiguracyjnym aplikacji, który udostępnia wymagane parametry połączenia w formie par klucz/wartość. W takim przypadku nie można podać ich bezpośrednio w łańcuchu połączenia. Słowo Name kluczowe nie jest dozwolone w pliku konfiguracji.Jeśli słowo kluczowe Name nie jest uwzględnione w ciągu połączenia, wymagane są wartości inne niż puste dla słowa kluczowego Provider.To słowo kluczowe jest wzajemnie wykluczające się z innymi słowami kluczowymi ciągu połączenia. |
Aplikacja może podać słowo kluczowe/wartości bezpośrednio we ConnectionString właściwości lub określić wartość słowa kluczowego Name .
Name Jeśli słowo kluczowe jest określone, słowo kluczowe/wartości parametrów połączenia są pobierane z pliku konfiguracji aplikacji w następujący sposób:
Name=AdventureWorksEntities;
Name Jeśli słowo kluczowe jest używane we ConnectionString właściwości, inne słowa kluczowe nie są dozwolone. Słowo Name kluczowe odnosi się do nazwanych parametrów połączenia przechowywanych w sekcji w connectionStrings pliku konfiguracji aplikacji, jak pokazano w poniższym przykładzie. Wartości Provider, Metadatai są Provider Connection String pobierane z pliku konfiguracji w czasie wykonywania.
Pary słów kluczowych/wartości można również podać bezpośrednio we ConnectionString właściwości, jak pokazano w poniższym przykładzie. W takim przypadku Name słowo kluczowe nie jest używane.
"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' "
Aby uniknąć nieumyślnego umieszczania obiektów, takich jak System.Data.Common.CommandTrees i ObjectContext poza synchronizacją z ich metadanymi, EntityConnection należy zablokować jego metadane. Po zablokowaniu metadanych nie są dozwolone żadne zmiany parametrów połączenia. Poniżej przedstawiono dwa scenariusze, w których metadane są zablokowane:
Wystąpienie EntityConnection jest konstruowane za pomocą konstruktora bez parametrów lub EntityConnection(String) konstruktora, który akceptuje parametry połączenia. W obu przypadkach parametry połączenia mogą zostać zmienione wiele razy przed otwarciem połączenia. Wywoływanie Open lub GetMetadataWorkspace blokowanie metadanych.
Wystąpienie EntityConnection jest konstruowane za pomocą konstruktora EntityConnection(MetadataWorkspace, DbConnection) , który akceptuje element MetadataWorkspace i DbConnection. W takim przypadku metadane są blokowane w czasie budowy. Żadne zmiany parametrów połączenia nigdy nie są dozwolone.
Po załadowaniu metadanych sprawdza, EntityConnection czy model koncepcyjny, model magazynu i plik mapowania są obecne.