Condividi tramite


EntityConnection.ConnectionString Proprietà

Definizione

Ottiene o imposta la stringa di connessione EntityConnection.

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 eseguito un tentativo di impostare la proprietà ConnectionString dopo l'inizializzazione dell'oggetto MetadataWorkspace di EntityConnection. L'oggetto MetadataWorkspace viene inizializzato quando l'istanza di EntityConnection viene costruita mediante l'overload che accetta un oggetto MetadataWorkspace come parametro oppure quando l'istanza di EntityConnection è stata aperta.

È stata specificata una parola chiave per la stringa di connessione non valida oppure non è stata specificata una parola chiave per la stringa di connessione obbligatoria.

Esempio

Nell'esempio seguente viene illustrato come utilizzare EntityConnectionStringBuilder insieme a un oggetto SqlConnectionStringBuilder. Il codice imposta le proprietà di un SqlConnectionStringBuilder oggetto per creare una SqlConnection stringa che fornisce parte del provider sottostante stringa di connessione. Si noti che il Provider nome non può essere impostato usando SqlConnectionStringBuilder, perché non usa la 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

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

Parola chiave 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 facoltativo. Indica la stringa di connessione specifica del provider passata all'origine dati sottostante. Questa stringa di connessione viene espressa usando coppie parola chiave/valore valide per il provider di dati. Una parola chiave Provider Connection String non valida produrrà un errore di runtime quando viene valutata dall'origine dati.

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

Il valore della parola chiave 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 la parola chiave è specificata, le Name parole chiave/valori stringa di connessione vengono recuperate da un file di configurazione dell'applicazione, come indicato di seguito:

Name=AdventureWorksEntities;

Se la Name parola chiave viene usata nella ConnectionString proprietà, altre parole chiave non sono consentite. La Name parola chiave fa riferimento a un stringa di connessione denominato archiviato nella sezione in connectionStrings 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 parola chiave/valore possono inoltre essere specificate direttamente nella proprietà ConnectionString, 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 che oggetti quali System.Data.Common.CommandTrees e ObjectContext risultino inavvertitamente non sincronizzati con i relativi metadati, è necessario che l'oggetto EntityConnection blocchi i propri metadati. Dopo il blocco dei metadati, non è consentito apportare alcuna modifica alla stringa di connessione. Nei due scenari seguenti viene illustrato il blocco dei metadati:

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

Si applica a

Vedi anche