EntityConnection.ConnectionString Egenskap

Definition

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:

När metadata läses in EntityConnection verifieras att den konceptuella modellen, lagringsmodellen och mappningsfilen alla finns.

Gäller för

Se även