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ścią domyślną jest ciąg pusty. 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 przez przeciążenie, które przyjmuje MetadataWorkspace jako parametr, lub gdy EntityConnection wystąpienie zostało otwarte.
Podano nieprawidłowe słowo kluczowe parametry połączenia lub nie podano wymaganego słowa kluczowego parametry 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ęść podstawowego dostawcy parametry połączenia. Należy pamiętać, że Provider
nie można ustawić nazwy przy użyciu elementu , ponieważ nie używa prawidłowej SqlConnectionStringBuilder
SqlConnection
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 połączenia EntityClient
składa się z sekwencji par parametrów słowa kluczowego/wartości oddzielonych ś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 pliku ConnectionString.
Słowo kluczowe | Opis |
---|---|
Provider |
Wymagane, jeśli nie określono słowa kluczowego Name . Nazwa dostawcy, która służy do pobierania DbProviderFactory obiektu dla bazowego dostawcy. Ta wartość jest stała.Name Jeśli słowo kluczowe nie jest uwzględnione w parametry połączenia, wymagana jest wartość niepusta dla 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. Ta parametry połączenia jest wyrażona przy użyciu prawidłowych par słów kluczowych/wartości dostawcy danych. Nieprawidłowa Provider Connection String wartość 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 nie określono słowa kluczowego Name . Rozdzielana potokami lista katalogów, plików i lokalizacji zasobów, w których można 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 potoku 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 konfiguracji aplikacji, który udostępnia wymagane wartości słowa kluczowego/wartości parametry połączenia. W takim przypadku nie można podać ich bezpośrednio w parametry połączenia. Słowo Name kluczowe nie jest dozwolone w pliku konfiguracji.Name Jeśli słowo kluczowe nie jest uwzględnione w parametry połączenia, wymagane są wartości inne niż puste dla słowa kluczowego Dostawca.To słowo kluczowe wyklucza się wzajemnie ze wszystkimi innymi słowami kluczowymi parametry 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 zostanie określone, parametry połączenia słowo kluczowe/wartości 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 nazwanego parametry połączenia przechowywanego connectionStrings
w sekcji w pliku konfiguracji aplikacji, jak pokazano w poniższym przykładzie. Wartości Provider
, Metadata
i Provider Connection String
są 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 w parametry 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 konstruktoraEntityConnection(String), który akceptuje parametry połączenia. W obu przypadkach parametry połączenia można zmienić wiele razy przed otwarciem połączenia. Wywoływanie Open lub GetMetadataWorkspace blokowanie metadanych.
Wystąpienie EntityConnection jest konstruowane za pomocą konstruktoraEntityConnection(MetadataWorkspace, DbConnection), który akceptuje element MetadataWorkspace i .DbConnection W takim przypadku metadane są zablokowane w czasie budowy. Żadne zmiany w parametry połączenia nigdy nie są dozwolone.
Po załadowaniu metadanych sprawdza, EntityConnection czy model koncepcyjny, model magazynu i plik mapowania są obecne.