EntityConnection.ConnectionString Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u de EntityConnection verbindingsreeks op of stelt u deze in.
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
Waarde van eigenschap
De verbindingsreeks vereist om de eerste verbinding met een gegevensbron tot stand te brengen. De standaardwaarde is een lege tekenreeks. Bij een gesloten verbinding wordt de momenteel ingestelde waarde geretourneerd. Als er geen waarde is ingesteld, wordt een lege tekenreeks geretourneerd.
Uitzonderingen
Er is geprobeerd de ConnectionString eigenschap in te stellen nadat de EntityConnectioneigenschappen MetadataWorkspace zijn geïnitialiseerd. De MetadataWorkspace wordt geïnitialiseerd wanneer het EntityConnection exemplaar wordt samengesteld via de overbelasting die een MetadataWorkspace parameter gebruikt of wanneer het EntityConnection exemplaar is geopend.
Er is een ongeldig verbindingsreeks trefwoord opgegeven of er is geen vereist verbindingsreeks trefwoord is opgegeven.
Voorbeelden
In het volgende voorbeeld ziet u hoe u de EntityConnectionStringBuilder in combinatie met een SqlConnectionStringBuilder. Met de code worden eigenschappen van een SqlConnectionStringBuilder ingesteld om een SqlConnection tekenreeks te maken die een deel van de onderliggende provider verbindingsreeks levert. Houd er rekening mee dat de Provider naam niet kan worden ingesteld met behulp van de SqlConnectionStringBuilder, omdat deze geen geldige SqlConnection syntaxis gebruikt. De code maakt de EntityConnection tekenreeks door eigenschappen in te stellen EntityConnectionStringBuilder .
// 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
Opmerkingen
Een EntityClient verbindingsreeks bestaat uit een reeks trefwoord-/waardeparameterparen, gescheiden door puntkomma's. Het gelijkteken (=) verbindt elk trefwoord en de bijbehorende waarde. De volgende tabel bevat de geldige namen voor trefwoordwaarden in de ConnectionStringtabel .
| Keyword | Beschrijving |
|---|---|
Provider |
Vereist als het Name trefwoord niet is opgegeven. De providernaam, die wordt gebruikt om het DbProviderFactory object voor de onderliggende provider op te halen. Deze waarde is constant.Wanneer het trefwoord Name niet is opgenomen in de verbindingsreeks, is een niet-lege waarde vereist voor het trefwoord Provider. Dit trefwoord is wederzijds exclusief met het Name trefwoord. |
Provider Connection String |
Optional. Hiermee geeft u de providerspecifieke verbindingsreeks die wordt doorgegeven aan de onderliggende gegevensbron. Deze verbindingsreeks wordt uitgedrukt met behulp van geldige trefwoord-/waardeparen voor de gegevensprovider. Een ongeldige Provider Connection String fout veroorzaakt een runtimefout wanneer deze wordt geëvalueerd door de gegevensbron.Dit trefwoord is wederzijds exclusief met het Name trefwoord.De waarde van de Provider Connection String waarde moet tussen aanhalingstekens staan. Hier volgt een voorbeeld:Provider Connection String ="Server=serverName; User ID = userID";Het volgende voorbeeld werkt niet: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Vereist als het Name trefwoord niet is opgegeven. Een door sluistekens gescheiden lijst met mappen, bestanden en resourcelocaties waarin u kunt zoeken naar model- en toewijzingsgegevens. Hier volgt een voorbeeld:Metadata=c:\model | c:\model\sql\mapping.msl;Lege spaties aan elke kant van het pijpscheidingsteken worden genegeerd. Dit trefwoord is wederzijds exclusief met het Name trefwoord. |
Name |
De toepassing kan desgewenst de verbindingsnaam opgeven in een toepassingsconfiguratiebestand dat de vereiste trefwoord/waarde verbindingsreekswaarden levert. In dit geval kunt u ze niet rechtstreeks in de verbindingsreeks leveren. Het Name trefwoord is niet toegestaan in een configuratiebestand.Wanneer het Name trefwoord niet is opgenomen in de verbindingsreeks, is een niet-lege waarde voor het trefwoord Provider vereist.Dit trefwoord is wederzijds exclusief met alle andere verbindingsreeks-trefwoorden. |
De toepassing kan het trefwoord/de waarden rechtstreeks in de ConnectionString eigenschap opgeven of een waarde voor het Name trefwoord opgeven. Als het trefwoord Name is opgegeven, worden de verbindingsreeks trefwoord/waarden als volgt opgehaald uit een toepassingsconfiguratiebestand:
Name=AdventureWorksEntities;
Als het Name trefwoord in de ConnectionString eigenschap wordt gebruikt, zijn andere trefwoorden niet toegestaan. Het trefwoord Name verwijst naar een benoemde verbindingsreeks die is opgeslagen in de sectie connectionStrings in een toepassingsconfiguratiebestand, zoals wordt weergegeven in het volgende voorbeeld. De Provider, Metadataen Provider Connection String waarden worden tijdens runtime opgehaald uit het configuratiebestand.
De trefwoord-/waardeparen kunnen ook rechtstreeks in de ConnectionString eigenschap worden opgegeven, zoals wordt weergegeven in het volgende voorbeeld. In dit geval wordt het Name trefwoord niet gebruikt.
"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' "
Als u onbedoeld objecten zoals System.Data.Common.CommandTrees en ObjectContext niet synchroon wilt plaatsen met hun metagegevens, EntityConnection moet u de metagegevens vergrendelen. Er zijn geen wijzigingen in de verbindingsreeks toegestaan nadat de metagegevens zijn vergrendeld. Hier volgen twee scenario's waarin metagegevens zijn vergrendeld:
De EntityConnection-instantie wordt samengesteld via de parameterloze constructor of via de EntityConnection(String) constructor, die een verbindingsreeks accepteert. In beide gevallen kan de verbindingsreeks meerdere keren worden gewijzigd voordat de verbinding wordt geopend. Hiermee worden de metagegevens aangeroepen Open of GetMetadataWorkspace vergrendeld.
Het EntityConnection exemplaar wordt samengesteld via de EntityConnection(MetadataWorkspace, DbConnection) constructor, die een MetadataWorkspace en een DbConnectionaccepteert. In dit geval worden de metagegevens tijdens de bouw vergrendeld. Er zijn nooit wijzigingen in de verbindingsreeks toegestaan.
Wanneer metagegevens worden geladen, controleert u EntityConnection of het conceptuele model, het opslagmodel en het toewijzingsbestand allemaal aanwezig zijn.