EntityConnection.ConnectionString Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
L'istanza EntityConnection viene costruita tramite il costruttore senza parametri o tramite il EntityConnection(String) costruttore , che accetta una stringa di connessione. In entrambi i casi, la stringa di connessione potrebbe essere modificata più volte prima dell'apertura della connessione. La chiamata Open o GetMetadataWorkspace blocca i metadati.
L'istanza EntityConnection viene costruita tramite il EntityConnection(MetadataWorkspace, DbConnection) costruttore , che accetta un MetadataWorkspace oggetto e .DbConnection In questo caso i metadati sono bloccati in fase di costruzione. Non sono mai consentite modifiche alla stringa di connessione.
Quando vengono caricati i metadati, verifica EntityConnection che il modello concettuale, il modello di archiviazione e il file di mapping siano tutti presenti.