EntityConnection.ConnectionString Egenskap
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar eller anger EntityConnection reťazec pripojenia.
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
Egenskapsvärde
Den reťazec pripojenia som krävs för att upprätta den första anslutningen till en datakälla. Standardvärdet är en tom sträng. Vid en stängd anslutning returneras det angivna värdet. Om inget värde har angetts returneras en tom sträng.
Undantag
Ett försök gjordes att ange ConnectionString egenskapen efter EntityConnectionatt 's MetadataWorkspace initierades. MetadataWorkspace Initieras antingen när instansen EntityConnection konstrueras genom den överlagring som tar en MetadataWorkspace som en parameter eller när instansen EntityConnection har öppnats.
Ett ogiltigt reťazec pripojenia nyckelord har angetts eller ett obligatoriskt reťazec pripojenia nyckelord har inte angetts.
Exempel
I följande exempel visas hur du använder EntityConnectionStringBuilder tillsammans med en SqlConnectionStringBuilder. Koden anger egenskaper för en SqlConnectionStringBuilder för att skapa en SqlConnection sträng som tillhandahåller en del av den underliggande providern reťazec pripojenia. Observera att namnet Provider inte kan anges med hjälp SqlConnectionStringBuilderav , eftersom det inte använder giltig SqlConnection syntax. Koden skapar strängen EntityConnection genom att ange EntityConnectionStringBuilder egenskaper.
// 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
Kommentarer
En EntityClient reťazec pripojenia består av en sekvens med parameterpar för nyckelord/värde avgränsade med semikolon. Likhetstecknet (=) ansluter varje nyckelord och dess värde. I följande tabell visas de giltiga namnen för nyckelordsvärden i ConnectionString.
| Nyckelord | Description |
|---|---|
Provider |
Krävs om nyckelordet Name inte har angetts. Providernamnet, som används för att hämta DbProviderFactory objektet för den underliggande providern. Det här värdet är konstant.När nyckelordet Name inte ingår i reťazec pripojenia krävs ett icke-tomt värde för nyckelordet Provider. Det här nyckelordet är ömsesidigt uteslutande med nyckelordet Name . |
Provider Connection String |
Optional. Anger den providerspecifika anslutningssträng som skickas till den underliggande datakällan. Den här reťazec pripojenia uttrycks med hjälp av giltiga nyckelord/värdepar för dataprovidern. Ett ogiltigt Provider Connection String fel orsakar ett körningsfel när det utvärderas av datakällan.Det här nyckelordet är ömsesidigt uteslutande med nyckelordet Name .Värdet för Provider Connection String måste vara omgivet av citattecken. Följande utgör ett exempel:Provider Connection String ="Server=serverName; User ID = userID";Följande exempel kommer inte att fungera: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Krävs om nyckelordet Name inte har angetts. En pipe-avgränsad lista över kataloger, filer och resursplatser där du kan söka efter modell- och mappningsinformation. Följande utgör ett exempel:Metadata=c:\model | c:\model\sql\mapping.msl;Mellanslag på varje sida av röravgränsaren ignoreras. Det här nyckelordet är ömsesidigt uteslutande med nyckelordet Name . |
Name |
Programmet kan valfritt ange ett anslutningsnamn i en programkonfigurationsfil som tillhandahåller de nödvändiga nyckelord/värde-par som krävs för anslutningssträngen. I det här fallet kan du inte ange dem direkt i anslutningssträng. Nyckelordet Name tillåts inte i en konfigurationsfil.När nyckelordet Name inte ingår i anslutningssträng krävs ett icke-tomt värde för nyckelordet Provider.Det här nyckelordet är inbördes uteslutande med alla andra anslutningssträngsnyckelord. |
Programmet kan ange nyckelordet/värdena direkt i ConnectionString egenskapen eller ange ett värde för nyckelordet Name . Om nyckelordet Name anges hämtas reťazec pripojenia nyckelord/värden från en programkonfigurationsfil enligt följande:
Name=AdventureWorksEntities;
Om nyckelordet Name används i egenskapen ConnectionString tillåts inte andra nyckelord. Nyckelordet Name refererar till ett namngivet reťazec pripojenia som lagras i avsnittet connectionStrings i en programkonfigurationsfil, enligt följande exempel. Värdena Provider, Metadataoch Provider Connection String hämtas från konfigurationsfilen vid körning.
Nyckelords-/värdeparen kan också anges direkt i ConnectionString egenskapen, som du ser i följande exempel. I det här fallet används inte nyckelordet Name .
"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' "
För att undvika att oavsiktligt placera objekt som System.Data.Common.CommandTrees och ObjectContext inte synkroniseras med deras metadata måste EntityConnection dess metadata låsas. Inga ändringar i reťazec pripojenia tillåts när metadata har låsts. Följande är två scenarier där metadata är låsta:
Instansen EntityConnection konstrueras via den parameterlösa konstruktorn eller via konstruktorn EntityConnection(String) som accepterar en reťazec pripojenia. I båda fallen kan reťazec pripojenia ändras flera gånger innan anslutningen öppnas. Anropar Open eller GetMetadataWorkspace låser metadata.
Instansen EntityConnectionEntityConnection(MetadataWorkspace, DbConnection) skapas via konstruktorn, som accepterar en MetadataWorkspace och en DbConnection. I det här fallet är metadata låsta vid byggtiden. Inga ändringar i reťazec pripojenia tillåts någonsin.
När metadata läses in EntityConnection verifieras att den konceptuella modellen, lagringsmodellen och mappningsfilen alla finns.