Udostępnij za pośrednictwem


EntityConnection.ConnectionString Właściwość

Definicja

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 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 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, Metadatai 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:

Po załadowaniu metadanych sprawdza, EntityConnection czy model koncepcyjny, model magazynu i plik mapowania są obecne.

Dotyczy

Zobacz też