Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

EntityConnection.ConnectionString-Eigenschaft

Aktualisiert: November 2007

Ruft die EntityConnection-Verbindungszeichenfolge ab oder legt diese fest.

Namespace:  System.Data.EntityClient
Assembly:  System.Data.Entity (in System.Data.Entity.dll)

public override string ConnectionString { get; set; }
/** @property */
public String get_ConnectionString()
/** @property */
public  void set_ConnectionString(String value)

public override function get ConnectionString () : String
public override function set ConnectionString (value : String)

Eigenschaftenwert

Typ: System.String
Die Verbindungszeichenfolge, die zur Herstellung 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.

Implementiert

IDbConnection.ConnectionString

AusnahmeBedingung
InvalidOperationException

Es wurde versucht, die ConnectionString-Eigenschaft festzulegen, nachdem der MetadataWorkspace der [EntityConnection] initialisiert wurde. Der [MetadataWorkspace] wird initialisiert, wenn die Instanz von [EntityConnection] mittels der Überladung erstellt wird, die einen [MetadataWorkspace] als Parameter akzeptiert, oder wenn die Instanz von EntityConnection geöffnet wurde.

ArgumentException

Es wurde ein ungültiges Schlüsselwort für eine Verbindungszeichenfolge angegeben, oder ein erforderliches Schlüsselwort für eine Verbindungszeichenfolge wurde nicht angegeben.

Eine EntityClient-Verbindungszeichenfolge besteht aus einer Folge von Schlüsselwort-Wert-Parameterpaaren, die durch Semikolons getrennt sind. Gleichheitszeichen (=) verbinden Schlüsselwörter mit dem jeweils zugehörigen Wert. Die folgende Tabelle enthält die gültigen Namen für die Schlüsselwortwerte in der ConnectionString.

Schlüsselwort

Beschreibung

Anbieter

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 in einer Entitätsverbindungszeichenfolge nicht das Schlüsselwort Name eingefügt wurde, ist für das Schlüsselwort Provider ein nicht leerer Wert erforderlich. Dieses Schlüsselwort und das Schlüsselwort Name schließen sich gegenseitig aus.

Verbindungszeichenfolge für den Anbieter

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 Anbieterverbindungszeichenfolge 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 Anbieterverbindungszeichenfolge muss in Anführungszeichen eingeschlossen werden. Das Folgende ist 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

Metadaten

Erforderlich, wenn das Schlüsselwort Name nicht angegeben ist. Eine durch senkrechte Striche getrennte Liste von Verzeichnissen, Dateien und Ressourcenspeicherorten, die nach Metadaten und Zuordnungsinformationen durchsucht werden sollen. Das Folgende ist 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 Schlüsselwort Provider 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 das Schlüsselwort/die Werte direkt in der ConnectionString-Eigenschaft bereitstellen, sie kann jedoch auch einen Wert für das Schlüsselwort Name angeben. Wenn das Schlüsselwort Name angegeben ist, werden das Schlüsselwort oder die Werte für die Verbindungszeichenfolge wie folgt aus einer Anwendungskonfigurationsdatei abgerufen:

Name=AdventureWorksEntities;

Wenn das Schlüsselwort Name in der ConnectionString-Eigenschaft verwendet wird, sind andere Schlüsselwörter nicht zulässig. Das Schlüsselwort Name verweist auf eine benannte Verbindungszeichenfolge, die im Abschnitt connectionStrings einer Anwendungskonfigurationsdatei gespeichert ist, wie im folgenden Beispiel gezeigt wird. Die Werte für Anbieter, Metadaten und Anbieterverbindungszeichenfolge werden zur Laufzeit aus der Konfigurationsdatei abgerufen.

<connectionStrings>
    <add name="AdventureWorksEntities" 
		 connectionString="metadata=.\AdventureWorks.csdl|.\AdventureWorks.ssdl|.\AdventureWorks.msl;
		 provider=System.Data.SqlClient;provider connection string='Data Source=localhost;
		 Initial Catalog=AdventureWorks;Integrated Security=True;Connection Timeout=60;
		 multipleactiveresultsets=true'" providerName="System.Data.EntityClient" />
	<add name="NorthwindEntities" connectionString="metadata=.\Northwind.csdl|.\Northwind.ssdl.\Northwind.msl;
		 provider=System.Data.SqlClient;provider connection string='Data Source=localhost;
		 Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=True'" 
		 providerName="System.Data.EntityClient" />
</connectionStrings>


Die Schlüsselwort-Wert-Paare können auch direkt in der ConnectionString-Eigenschaft bereitgestellt werden, wie im folgenden Beispiel dargestellt. In diesem Fall wird das Schlüsselwort Name 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 das versehentliche Aufheben der Synchronisierung von Objekten, z. B. System.Data.Common.CommandTrees und ObjectContext, mit deren Metadaten zu vermeiden, müssen die Metadaten von EntityConnection gesperrt werden. Nach dem Sperren der Metadaten sind keine Änderungen an der Verbindungszeichenfolge zulässig. In den folgenden beiden Szenarios werden die Metadaten gesperrt:

  • Die EntityConnection-Instanz wird über den Standardkonstruktor erstellt oder über den EntityConnection(String)-Konstruktor, der eine Verbindungszeichenfolge akzeptiert. In beiden Fällen kann die Verbindungszeichenfolge vor dem Öffnen der Verbindung mehrmals geändert werden. Durch Aufrufen von [M:System.Data.EntityClient.EntityConnection.Open()] oder [M:System.Data.EntityClient.EntityConnection.GetMetadataWorkspace()] werden die Metadaten gesperrt.

  • Die EntityConnection-Instanz wird über den EntityConnection(MetadataWorkspace, DbConnection)-Konstruktor erstellt, der einen MetadataWorkspace und eine DbConnection akzeptiert. In diesem Fall werden die Metadaten zur Erstellungszeit gesperrt. Zu keiner Zeit sind Änderungen an der Verbindungszeichenfolge zulässig.

Beim Laden der Metadaten überprüft die EntityConnection, ob das Konzeptmodell, das Speichermodell und die Zuordnungsdatei vorhanden sind.

Im folgenden Beispiel wird die Verwendung von EntityConnectionStringBuilder in Verbindung mit einem SqlConnectionStringBuilder veranschaulicht. Der Code legt die Eigenschaften eines SqlConnectionStringBuilder fest, um eine SqlConnection-Zeichenfolge zu erstellen, die einen Teil der zugrunde liegenden Verbindungszeichenfolge bereitstellt. Beachten Sie, dass der Anbieter-Name nicht mit dem SqlConnectionStringBuilder festgelegt werden kann, da für diesen keine für SqlConnection gültige Syntax verwendet wird. Die EntityConnection-Zeichenfolge wird durch den Code erstellt, indem EntityConnectionStringBuilder-Eigenschaften festgelegt werden.


// 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();
}


.NET Framework und .NET Compact Framework unterstützen nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

.NET Framework

Unterstützt in: 3.5 SP1
Anzeigen: