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 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 Provider
valori , Metadata
e 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:
L'istanza EntityConnection viene costruita tramite il costruttore senza parametri o tramite il EntityConnection(String) costruttore, che accetta un stringa di connessione. In entrambi i casi, la stringa di connessione può essere modificata più volte prima dell'apertura della connessione. La chiamata a Open o GetMetadataWorkspace determina il blocco dei metadati.
L'istanza di EntityConnection viene costruita mediante il costruttore EntityConnection(MetadataWorkspace, DbConnection) che accetta un oggetto MetadataWorkspace e un oggetto DbConnection. In questo caso, i metadati vengono bloccati in fase di costruzione. Non è mai consentito apportare modifiche alla stringa di connessione.
Quando i metadati vengono caricati, l'oggetto EntityConnection verifica che il modello concettuale, il modello di archiviazione e il file di mapping siano presenti.