EntityConnection.ConnectionString Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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 SqlConnectionStringBuilder
SqlConnection
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
, Metadata
a 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:
Instance EntityConnection je vytvořena prostřednictvím konstruktoru bez parametrů nebo konstruktoruEntityConnection(String), který přijímá připojovací řetězec. V obou případech může být připojovací řetězec před otevřením připojení několikrát změněno. Volání Open nebo GetMetadataWorkspace uzamčení metadat.
Instance EntityConnection je vytvořena prostřednictvím konstruktoruEntityConnection(MetadataWorkspace, DbConnection), který přijímá MetadataWorkspace a .DbConnection V tomto případě jsou metadata uzamčena v době výstavby. V připojovací řetězec nejsou povoleny žádné změny.
Když se metadata načtou, EntityConnection ověří, že jsou k dispozici koncepční model, model úložiště a soubor mapování.