Sdílet prostřednictvím


EntityConnection.ConnectionString Vlastnost

Definice

Získá nebo nastaví EntityConnection připojovací řetězec.

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

Hodnota vlastnosti

Připojovací řetězec nutné k navázání počátečního připojení ke zdroji dat. Výchozí hodnota je prázdný řetězec. U uzavřeného připojení se vrátí aktuálně nastavená hodnota. Pokud nebyla nastavena žádná hodnota, vrátí se prázdný řetězec.

Výjimky

Po inicializaci vlastností byl proveden pokus o nastavení ConnectionString vlastnosti MetadataWorkspaceEntityConnection. Inicializuje MetadataWorkspace se buď při EntityConnection vytvoření instance prostřednictvím přetížení, které přijímá MetadataWorkspace jako parametr, nebo při EntityConnection otevření instance.

Bylo zadáno neplatné klíčové slovo připojovací řetězec nebo nebylo zadáno požadované klíčové slovo připojovací řetězec.

Příklady

Následující příklad ukazuje, jak použít EntityConnectionStringBuilder ve spojení s SqlConnectionStringBuilder. Kód nastaví vlastnosti objektu SqlConnectionStringBuilder a vytvoří SqlConnection řetězec, který poskytuje část základního zprostředkovatele připojovací řetězec. Všimněte siProvider, že název nelze nastavit pomocí , protože nepoužívá platnou SqlConnectionStringBuilderSqlConnection syntaxi. Kód vytvoří EntityConnection řetězec nastavením EntityConnectionStringBuilder vlastností.


// 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

Poznámky

Připojovací řetězec EntityClient se skládá z posloupnosti párů parametrů klíčového slova a hodnoty oddělených středníky. Znaménko rovná se (=) spojuje jednotlivá klíčová slova a jeho hodnotu. Následující tabulka uvádí platné názvy hodnot klíčových slov v ConnectionStringsouboru .

Keyword Description
Provider Vyžaduje se, Name pokud není zadané klíčové slovo. Název zprostředkovatele, který se používá k načtení objektu DbProviderFactory pro příslušného zprostředkovatele. Tato hodnota je konstantní.

Name Pokud klíčové slovo není součástí připojovací řetězec, je vyžadována neprázdná hodnota klíčového Provider slova. Toto klíčové slovo se vzájemně vylučuje s klíčovým slovem Name .
Provider Connection String Nepovinný parametr. Určuje připojovací řetězec specifické pro zprostředkovatele, který se předá podkladovému zdroji dat. Tato připojovací řetězec se vyjadřuje pomocí platných párů klíčového slova a hodnoty pro zprostředkovatele dat. Neplatná Provider Connection String hodnota způsobí chybu za běhu, když ji vyhodnotí zdroj dat.

Toto klíčové slovo se vzájemně vylučuje s klíčovým slovem Name .

Hodnota Provider Connection String musí být uzavřena v uvozovkách. Například:

Provider Connection String ="Server=serverName; User ID = userID";

Následující příklad nebude fungovat:

Provider Connection String =Server=serverName; User ID = userID
Metadata Vyžaduje se, Name pokud není zadané klíčové slovo. Seznam adresářů, souborů a umístění prostředků oddělených kanály, ve kterých se mají hledat informace o modelu a mapování. Například:

Metadata=

c:\model | c:\model\sql\mapping.msl;

Prázdné mezery na každé straně oddělovače potrubí se ignorují.

Toto klíčové slovo se vzájemně vylučuje s klíčovým slovem Name .
Name Aplikace může volitelně zadat název připojení v konfiguračním souboru aplikace, který poskytuje požadované klíčové slovo nebo hodnotu připojovací řetězec hodnoty. V takovém případě je nemůžete zadat přímo v připojovací řetězec. Klíčové Name slovo není v konfiguračním souboru povoleno.

Name Pokud klíčové slovo není součástí připojovací řetězec, je vyžadována neprázdná hodnota klíčového slova zprostředkovatele.

Toto klíčové slovo se vzájemně vylučuje se všemi ostatními připojovací řetězec klíčovými slovy.

Aplikace může zadat klíčové slovo nebo hodnoty přímo ve ConnectionString vlastnosti, nebo může zadat hodnotu klíčového Name slova. Name Pokud je klíčové slovo zadané, načtou se z konfiguračního souboru aplikace připojovací řetězec klíčové slovo nebo hodnoty, a to následujícím způsobem:

Name=AdventureWorksEntities;

Pokud je Name klíčové slovo použito ve ConnectionString vlastnosti, nejsou povolena jiná klíčová slova. Klíčové Name slovo odkazuje na pojmenovanou připojovací řetězec, která je uložena v oddílu connectionStrings v konfiguračním souboru aplikace, jak je znázorněno v následujícím příkladu. Hodnoty Provider, Metadataa Provider Connection String se načítají z konfiguračního souboru za běhu.

Páry klíčového slova a hodnoty lze také zadat přímo ve ConnectionString vlastnosti, jak je znázorněno v následujícím příkladu. V tomto případě Name se klíčové slovo nepoužívá.

"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' "

Chcete-li zabránit neúmyslnému uvedení objektů, jako System.Data.Common.CommandTrees jsou a ObjectContext mimo synchronizaci s jejich metadaty, EntityConnection musí uzamknout jejich metadata. Po uzamčení metadat nejsou povoleny žádné změny připojovací řetězec. Tady jsou dva scénáře, ve kterých jsou metadata uzamčena:

Když se metadata načtou, EntityConnection ověří, že jsou k dispozici koncepční model, model úložiště a soubor mapování.

Platí pro

Viz také