Condividi tramite


EntityConnection.ConnectionString Proprietà

Definizione

Ottiene o imposta la stringa di EntityConnection connessione.

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

Valore della proprietà

Stringa di connessione necessaria per stabilire la connessione iniziale a un'origine dati. Il valore predefinito è una stringa vuota. In una connessione chiusa, viene restituito il valore attualmente impostato. Se non è stato impostato alcun valore, viene restituita una stringa vuota.

Eccezioni

È stato effettuato un tentativo di impostare la ConnectionString proprietà dopo l'inizializzazione EntityConnectiondi .MetadataWorkspace Viene MetadataWorkspace inizializzato quando l'istanza EntityConnection viene costruita tramite l'overload che accetta come MetadataWorkspace parametro o quando l'istanza EntityConnection è stata aperta.

È stata specificata una parola chiave della stringa di connessione non valida o non è stata specificata una parola chiave della stringa di connessione necessaria.

Esempio

Nell'esempio seguente viene illustrato come usare insieme EntityConnectionStringBuilder a un oggetto SqlConnectionStringBuilder. Il codice imposta le proprietà di un oggetto SqlConnectionStringBuilder per creare una SqlConnection stringa che fornisce parte della stringa di connessione del provider sottostante. Si noti che il Provider nome non può essere impostato tramite , SqlConnectionStringBuilderperché non usa una sintassi valida SqlConnection . Il codice crea la EntityConnection stringa impostando EntityConnectionStringBuilder le proprietà.


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

Commenti

Una EntityClient stringa di connessione è costituita da una sequenza di coppie di parametri parola chiave/valore separate da punti e virgola. Il segno di uguale (=) connette ogni parola chiave e il relativo valore. Nella tabella seguente sono inclusi i nomi validi per i valori di parola chiave nella proprietà ConnectionString.

Keyword Descrizione
Provider Obbligatoria se la parola chiave Name non è specificata. Nome del provider usato per recuperare l'oggetto DbProviderFactory per il provider sottostante. Questo valore è costante.

Quando la Name parola chiave non è inclusa nella stringa di connessione, è necessario un valore non vuoto per la Provider parola chiave . Questa parola chiave e la parola chiave Name si escludono a vicenda.
Provider Connection String Optional. Indica la stringa di connessione specifica del provider che viene passata alla fonte dati sottostante. Questa stringa di connessione viene espressa usando coppie di parole chiave/valore valide per il provider di dati. Un valore non valido Provider Connection String causerà un errore di run-time quando viene valutato dall'origine dati.

Questa parola chiave e la parola chiave Name si escludono a vicenda.

Il valore di Provider Connection String deve essere racchiuso tra virgolette. Di seguito è riportato un esempio:

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

L'esempio seguente non funzionerà:

Provider Connection String =Server=serverName; User ID = userID
Metadata Obbligatoria se la parola chiave Name non è specificata. Elenco delimitato da pipe di directory, file e percorsi delle risorse in cui cercare informazioni sul modello e sul mapping. Di seguito è riportato un esempio:

Metadata=

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

Gli spazi vuoti a ogni lato del separatore vengono ignorati.

Questa parola chiave e la parola chiave Name si escludono a vicenda.
Name L'applicazione può eventualmente specificare il nome della connessione in un file di configurazione dell'applicazione che fornisce i valori della stringa di connessione parola chiave/valore obbligatori. In questo caso, non è possibile specificare tali valori direttamente nella stringa di connessione. L'utilizzo della parola chiave Name non è consentito in un file di configurazione.

Quando la parola chiave Name non è inclusa nella stringa di connessione, per la parola chiave Provider è necessario specificare valori non vuoti.

Questa parola chiave e tutte le altre parole chiave per la stringa di connessione si escludono a vicenda.

L'applicazione può fornire la parola chiave/i valori direttamente nella ConnectionString proprietà oppure può specificare un valore per la Name parola chiave . Se si specifica la Name parola chiave , la parola chiave/valori della stringa di connessione viene recuperata da un file di configurazione dell'applicazione, come indicato di seguito:

Name=AdventureWorksEntities;

Se la Name parola chiave viene usata nella ConnectionString proprietà , le altre parole chiave non sono consentite. La Name parola chiave fa riferimento a una stringa di connessione denominata archiviata nella connectionStrings sezione in un file di configurazione dell'applicazione, come illustrato nell'esempio seguente. I Providervalori , Metadatae Provider Connection String vengono recuperati dal file di configurazione in fase di esecuzione.

Le coppie di parole chiave/valore possono essere fornite direttamente nella ConnectionString proprietà , come illustrato nell'esempio seguente. In questo caso, la Name parola chiave non viene usata.

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

Per evitare di inserire inavvertitamente oggetti come System.Data.Common.CommandTrees e ObjectContext non sincronizzati con i relativi metadati, EntityConnection è necessario bloccare i metadati. Dopo il blocco dei metadati non sono consentite modifiche alla stringa di connessione. Di seguito sono riportati due scenari in cui i metadati sono bloccati:

Quando vengono caricati i metadati, verifica EntityConnection che il modello concettuale, il modello di archiviazione e il file di mapping siano tutti presenti.

Si applica a

Vedi anche