EntityConnection.ConnectionString Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft die Verbindungszeichenfolge ab oder legt sie EntityConnection fest.
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
Eigenschaftswert
Die verbindungszeichenfolge, die zum Herstellen der ersten Verbindung mit einer Datenquelle erforderlich ist. Der Standardwert ist eine leere Zeichenfolge. Bei einer geschlossenen Verbindung wird der aktuell festgelegte Wert zurückgegeben. Wenn kein Wert festgelegt wurde, wird eine leere Zeichenfolge zurückgegeben.
Ausnahmen
Es wurde versucht, die Eigenschaft nach der Initialisierung der ConnectionStringEntityConnectionMetadataWorkspace Eigenschaft festzulegen. Die MetadataWorkspace Initialisierung erfolgt entweder, wenn die EntityConnection Instanz über die Überladung erstellt wird, die einen MetadataWorkspace Parameter akzeptiert, oder wenn die EntityConnection Instanz geöffnet wurde.
Es wurde ein ungültiges Schlüsselwort für verbindungszeichenfolgen bereitgestellt, oder es wurde kein erforderliches Schlüsselwort für verbindungszeichenfolgen angegeben.
Beispiele
Das folgende Beispiel veranschaulicht die Verwendung der EntityConnectionStringBuilder in Verbindung mit einem SqlConnectionStringBuilder. Der Code legt die Eigenschaften eines Typs SqlConnectionStringBuilder fest, um eine SqlConnection Zeichenfolge zu erstellen, die einen Teil der zugrunde liegenden Anbieterverbindungszeichenfolge bereitstellt. Beachten Sie, dass der Name nicht mithilfe des ProviderSqlConnectionStringBuilderNamens festgelegt werden kann, da er keine gültige SqlConnection Syntax verwendet. Der Code erstellt die EntityConnection Zeichenfolge durch Festlegen EntityConnectionStringBuilder von Eigenschaften.
// 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
Hinweise
Eine EntityClient Verbindungszeichenfolge besteht aus einer Sequenz von Schlüsselwort-Wert-Parameterpaaren, die durch Semikolons getrennt sind. Das Gleichheitszeichen (=) verbindet jedes Schlüsselwort und seinen Wert. Die folgende Tabelle enthält die gültigen Namen für Schlüsselwortwerte im ConnectionString.
| Keyword | Beschreibung |
|---|---|
Provider |
Erforderlich, wenn das Schlüsselwort Name nicht angegeben ist. Der Anbietername, mit dem das DbProviderFactory-Objekt für den zugrunde liegenden Anbieter abgerufen wird. Dieser Wert ist konstant.Wenn das Name Schlüsselwort nicht in der Verbindungszeichenfolge enthalten ist, ist ein nicht leerer Wert für das Provider Schlüsselwort erforderlich. Dieses Schlüsselwort und das Schlüsselwort Name schließen sich gegenseitig aus. |
Provider Connection String |
Dies ist optional. Gibt die anbieterspezifische Verbindungszeichenfolge an, die an die zugrunde liegende Datenquelle übergeben wird. Diese Verbindungszeichenfolge wird mithilfe gültiger Schlüsselwort-Wert-Paare für den Datenanbieter ausgedrückt. Ein ungültiger Provider Connection String Fehler verursacht einen Laufzeitfehler, wenn er von der Datenquelle ausgewertet wird.Dieses Schlüsselwort und das Schlüsselwort Name schließen sich gegenseitig aus.Der Wert des Provider Connection String Werts muss von Anführungszeichen umgeben sein. Es folgt ein Beispiel:Provider Connection String ="Server=serverName; User ID = userID";Das folgende Beispiel funktioniert nicht: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Erforderlich, wenn das Schlüsselwort Name nicht angegeben ist. Eine durch Pipe getrennte Liste von Verzeichnissen, Dateien und Ressourcenspeicherorten, in denen nach Modell- und Zuordnungsinformationen gesucht werden soll. Es folgt ein Beispiel:Metadata=c:\model | c:\model\sql\mapping.msl;Leerzeichen zu beiden Seiten des senkrechten Strichs werden ignoriert. Dieses Schlüsselwort und das Schlüsselwort Name schließen sich gegenseitig aus. |
Name |
Der Verbindungsname kann von der Anwendung optional in einer Anwendungskonfigurationsdatei angegeben werden, die die erforderlichen Verbindungszeichenfolgen-Werte mit den Schlüsselwort-Wert-Paaren enthält. In diesem Fall können diese nicht direkt in der Verbindungszeichenfolge angegeben werden. Das Schlüsselwort Name ist in einer Konfigurationsdatei nicht zulässig.Wenn das Schlüsselwort Name in der Verbindungszeichenfolge nicht enthalten ist, ist ein nicht leerer Wert für das Provider-Schlüsselwort erforderlich.Dieses Schlüsselwort und alle anderen Schlüsselwörter für Verbindungszeichenfolgen schließen sich gegenseitig aus. |
Die Anwendung kann das Schlüsselwort/die Werte direkt in der ConnectionString Eigenschaft angeben oder einen Wert für das Name Schlüsselwort angeben. Wenn das Name Schlüsselwort angegeben ist, werden das Schlüsselwort/die Werte der Verbindungszeichenfolge aus einer Anwendungskonfigurationsdatei wie folgt abgerufen:
Name=AdventureWorksEntities;
Wenn das Name Schlüsselwort in der ConnectionString Eigenschaft verwendet wird, sind andere Schlüsselwörter nicht zulässig. Das Name Schlüsselwort bezieht sich auf eine benannte Verbindungszeichenfolge, die connectionStrings im Abschnitt in einer Anwendungskonfigurationsdatei gespeichert ist, wie im folgenden Beispiel gezeigt. Die ProviderWerte Metadataund Werte Provider Connection String werden zur Laufzeit aus der Konfigurationsdatei abgerufen.
Die Schlüsselwort-Wert-Paare können auch direkt in der ConnectionString Eigenschaft angegeben werden, wie im folgenden Beispiel gezeigt. In diesem Fall wird das Name Schlüsselwort nicht verwendet.
"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' "
Um zu vermeiden, dass Objekte wie System.Data.Common.CommandTrees z. B. und ObjectContext nicht mehr mit ihren Metadaten synchronisiert werden, EntityConnection müssen sie die Metadaten sperren. Nach dem Sperren der Metadaten sind keine Änderungen an der Verbindungszeichenfolge zulässig. Es folgen zwei Szenarien, in denen Metadaten gesperrt sind:
Die EntityConnection Instanz wird über den parameterlosen Konstruktor oder den Konstruktor erstellt, der EntityConnection(String) eine Verbindungszeichenfolge akzeptiert. In beiden Fällen kann die Verbindungszeichenfolge mehrmals geändert werden, bevor die Verbindung geöffnet wird. Das Aufrufen Open oder GetMetadataWorkspace Sperren der Metadaten.
Die EntityConnection Instanz wird über den EntityConnection(MetadataWorkspace, DbConnection) Konstruktor erstellt, der ein MetadataWorkspace und ein DbConnection. In diesem Fall sind die Metadaten zur Bauzeit gesperrt. Es sind keine Änderungen an der Verbindungszeichenfolge zulässig.
Beim Laden von Metadaten wird überprüft, EntityConnection ob das konzeptionelle Modell, das Speichermodell und die Zuordnungsdatei vorhanden sind.