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 EntityConnection-Verbindungszeichenfolge ab oder legt diese 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 der 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 der Versuch unternommen, die ConnectionString-Eigenschaft festzulegen, nachdem der MetadataWorkspace von EntityConnection initialisiert wurde. Das MetadataWorkspace-Element wird initialisiert, wenn die EntityConnection-Instanz durch die Überladung erstellt wird, die einen MetadataWorkspace als Parameter annimmt, oder wenn die EntityConnection-Instanz geöffnet wurde.
Es wurde ein ungültiges Schlüsselwort für eine Verbindungszeichenfolge bereitgestellt, oder ein erforderliches Schlüsselwort für eine Verbindungszeichenfolge wurde nicht bereitgestellt.
Beispiele
Im folgenden Beispiel wird die Verwendung von EntityConnectionStringBuilder in Verbindung mit einem SqlConnectionStringBuilder veranschaulicht. Der Code legt eigenschaften eines SqlConnectionStringBuilder
fest, um eine Zeichenfolge zu erstellen, die einen SqlConnection Teil des zugrunde liegenden Anbieters Verbindungszeichenfolge bereitstellt. Beachten Sie, dass der Provider
Name nicht mithilfe SqlConnectionStringBuilder
von 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
Ein EntityClient
Verbindungszeichenfolge besteht aus einer Sequenz von Schlüsselwort (keyword)-Wert-Parameterpaaren, die durch Semikolons getrennt sind. Das Gleichheitszeichen (=) verbindet jeden Schlüsselwort (keyword) und seinen Wert. Die folgende Tabelle enthält die gültigen Namen für Schlüsselwortwerte im ConnectionString.
Schlüsselwort | 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 die Name Schlüsselwort (keyword) nicht im Verbindungszeichenfolge enthalten ist, ist ein nicht leerer Wert für die Provider Schlüsselwort (keyword) 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. Eine ungültige Provider Connection String löst bei der Auswertung durch die Datenquelle einen Laufzeitfehler aus.Dieses Schlüsselwort und das Schlüsselwort Name schließen sich gegenseitig aus.Der Wert der Provider Connection String muss durch Anführungszeichen eingeschlossen sein. Es folgt ein Beispiel:Provider Connection String ="Server=serverName; User ID = userID"; Das folgende Beispiel ist nicht funktionsfähig: 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 bereitgestellt werden. Das Schlüsselwort Name ist in einer Konfigurationsdatei nicht zulässig.Wenn das Schlüsselwort Name in der Verbindungszeichenfolge nicht eingefügt wurde, ist für das Provider-Schlüsselwort ein nicht leerer Wert erforderlich.Dieses Schlüsselwort und alle anderen Schlüsselwörter für Verbindungszeichenfolgen schließen sich gegenseitig aus. |
Die Anwendung kann die Schlüsselwort (keyword)/Werte direkt in der ConnectionString -Eigenschaft angeben oder einen Wert für die Name
Schlüsselwort (keyword) angeben. Wenn die Name
Schlüsselwort (keyword) angegeben wird, werden die Verbindungszeichenfolge Schlüsselwort (keyword)/Werte wie folgt aus einer Anwendungskonfigurationsdatei abgerufen:
Name=AdventureWorksEntities;
Wenn die Name
Schlüsselwort (keyword) in der ConnectionString -Eigenschaft verwendet wird, sind andere Schlüsselwörter nicht zulässig. Die Name
Schlüsselwort (keyword) bezieht sich auf eine benannte Verbindungszeichenfolge, die connectionStrings
im Abschnitt in einer Anwendungskonfigurationsdatei gespeichert ist, wie im folgenden Beispiel gezeigt. Die Provider
Werte , Metadata
und Provider Connection String
werden zur Laufzeit aus der Konfigurationsdatei abgerufen.
Die Schlüsselwort-Wert-Paare können auch direkt in der ConnectionString-Eigenschaft bereitgestellt werden, wie im folgenden Beispiel dargestellt. In diesem Fall wird die Name
Schlüsselwort (keyword) 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 und ObjectContext nicht versehentlich mit ihren Metadaten synchronisiert werden, EntityConnection müssen die Metadaten gesperrt werden. Nach dem Sperren der Metadaten sind keine Änderungen am Verbindungszeichenfolge zulässig. Im Folgenden sind zwei Szenarien aufgeführt, in denen Metadaten gesperrt sind:
Die EntityConnection instance wird über den parameterlosen Konstruktor oder über 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. Durch aufrufen Open oder sperren Sie GetMetadataWorkspace die Metadaten.
Die EntityConnection instance wird über den -Konstruktor erstellt, der EntityConnection(MetadataWorkspace, DbConnection) ein MetadataWorkspace und ein DbConnectionakzeptiert. In diesem Fall werden die Metadaten zur Erstellungszeit gesperrt. Es sind keine Änderungen am Verbindungszeichenfolge zulässig.
Beim Laden von Metadaten wird überprüft, EntityConnection ob das konzeptionelle Modell, das Speichermodell und die Zuordnungsdatei vorhanden sind.