Stringhe di connessioneConnection Strings

Una stringa di connessione contiene informazioni di inizializzazione che vengono passate come parametro da un provider di dati a un'origine dati.A connection string contains initialization information that is passed as a parameter from a data provider to a data source. La sintassi dipende dal provider di dati e la stringa di connessione viene analizzata durante il tentativo di aprire una connessione.The syntax depends on the data provider, and the connection string is parsed during the attempt to open a connection. Le stringhe di connessione usate da Entity Framework contengono informazioni che consentono di connettersi al provider di dati ADO.NET sottostante che supporta Entity Framework, nonchéConnection strings used by the Entity Framework contain information used to connect to the underlying ADO.NET data provider that supports the Entity Framework. informazioni sui file di modello e di mapping richiesti.They also contain information about the required model and mapping files.

La stringa di connessione viene usata dal provider EntityClient quando si accede ai metadati di modello e di mapping e quando si effettua la connessione all'origine dati.The connection string is used by the EntityClient provider when accessing model and mapping metadata and connecting to the data source. Per impostare o accedere alla stringa di connessione, usare la proprietà ConnectionString di EntityConnection.The connection string can be accessed or set through the ConnectionString property of EntityConnection. La classe EntityConnectionStringBuilder può essere usata a livello di codice per costruire o accedere ai parametri nella stringa di connessione.The EntityConnectionStringBuilder class can be used to programmatically construct or access parameters in the connection string. Per ulteriori informazioni, vedere procedura: compilare una stringa di connessione EntityConnection.For more information, see How to: Build an EntityConnection Connection String.

Il strumenti Entity Data Model genera una stringa di connessione che viene archiviata nel file di configurazione dell'applicazione.The Entity Data Model tools generate a connection string that is stored in the application's configuration file. L'oggetto ObjectContext consente di recuperare automaticamente queste informazioni di connessione quando si creano query di oggetto.ObjectContext retrieves this connection information automatically when creating object queries. È possibile accedere all'oggetto EntityConnection usato da un'istanza di ObjectContext direttamente dalla proprietà Connection.The EntityConnection used by an ObjectContext instance can be accessed from the Connection property. Per ulteriori informazioni, vedere alla gestione delle connessioni e transazioni.For more information, see Managing Connections and Transactions.

Parametri della stringa di connessioneConnection String Parameters

Il formato di una stringa di connessione è un elenco delimitato da punti e virgola composto da coppie di parametri chiave/valore:The format of a connection string is a semicolon-delimited list of key/value parameter pairs:

keyword1=value; keyword2=value;

Il segno di uguale (=) connette ogni parola chiave al relativo valore.The equal sign (=) connects each keyword and its value. Le parole chiave non fanno distinzione tra maiuscole e minuscole e gli spazi tra coppie chiave/valore vengono ignorati.Keywords are not case sensitive, and spaces between key/value pairs are ignored. È tuttavia possibile che tale distinzione sia valida per i valori, a seconda dell'origine dati.However, values can be case sensitive, depending on the data source. I valori contenenti punto e virgola, virgolette singole o virgolette doppie devono essere racchiusi tra virgolette doppie.Any values that contain a semicolon, single quotation marks, or double quotation marks must be enclosed in double quotation marks. Nella tabella seguente sono inclusi i nomi validi per i valori di parola chiave nella proprietà ConnectionString.The following table lists the valid names for keyword values in the ConnectionString.

Parola chiaveKeyword DescrizioneDescription
Provider Obbligatoria se la parola chiave Name non è specificata.Required if the Name keyword is not specified. Nome del provider usato per recuperare l'oggetto DbProviderFactory per il provider sottostante.The provider name, which is used to retrieve the DbProviderFactory object for the underlying provider. Questo valore è costante.This value is constant.

Quando la parola chiave Name non è inclusa in una stringa di connessione di entità, per la parola chiave Provider è necessario specificare un valore non vuoto.When the Name keyword is not included in an entity connection string, a non-empty value for the Provider keyword is required. Questa parola chiave e la parola chiave Name si escludono a vicenda.This keyword is mutually exclusive with the Name keyword.
Provider Connection String Parametro facoltativo.Optional. Indica la stringa di connessione specifica del provider passata all'origine dati sottostante.Specifies the provider-specific connection string that is passed to the underlying data source. Questa stringa di connessione viene espressa usando coppie parola chiave/valore valide per il provider di dati.This connection string is expressed by using valid keyword/value pairs for the data provider. Una parola chiave Provider Connection String non valida produrrà un errore di runtime quando viene valutata dall'origine dati.An invalid Provider Connection String will cause a run-time error when it is evaluated by the data source.

Questa parola chiave e la parola chiave Name si escludono a vicenda.This keyword is mutually exclusive with the Name keyword.

Il valore della parola chiave Provider Connection String deve essere racchiuso tra virgolette.The value of the Provider Connection String must be surrounded by quotes. Di seguito è riportato un esempio:The following is an example:

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

L'esempio seguente non funzionerà:The following example is not going to work:

Provider Connection String =Server=serverName; User ID = userID
Metadata Obbligatoria se la parola chiave Name non è specificata.Required if the Name keyword is not specified. Elenco di percorsi di directory, file e risorse delimitato da barre verticali in cui cercare informazioni relative a metadati e mapping.A pipe-delimited list of directories, files, and resource locations in which to look for metadata and mapping information. Di seguito è riportato un esempio:The following is an example:

Metadata=

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

Gli spazi vuoti a ogni lato del separatore vengono ignorati.Blank spaces on each side of the pipe separator are ignored.

Questa parola chiave e la parola chiave Name si escludono a vicenda.This keyword is mutually exclusive with the Name keyword.
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.The application can optionally specify the connection name in an application configuration file that provides the required keyword/value connection string values. In questo caso, non è possibile specificare tali valori direttamente nella stringa di connessione.In this case, you cannot supply them directly in the connection string. L'utilizzo della parola chiave Name non è consentito in un file di configurazione.The Name keyword is not allowed in a configuration file.

Quando la parola chiave Name non è inclusa nella stringa di connessione, per la parola chiave Provider è necessario specificare valori non vuoti.When the Name keyword is not included in the connection string, a non-empty values for Provider keyword is required.

Questa parola chiave e tutte le altre parole chiave per la stringa di connessione si escludono a vicenda.This keyword is mutually exclusive with all the other connection string keywords.

Di seguito è riportato un esempio di una stringa di connessione per il modello Sales di AdventureWorks archiviati nel file di configurazione dell'applicazione:The following is an example of a connection string for the AdventureWorks Sales Model stored in the application configuration file:

Percorsi dei file di modello e di mappingModel and Mapping File Locations

Il parametro Metadata contiene un elenco di percorsi in cui il provider EntityClient può eseguire una ricerca di file di modello e di mapping.The Metadata parameter contains a list of locations for the EntityClient provider to search for model and mapping files. I file di modello e di mapping spesso sono distribuiti nella stessa directory del file eseguibile dell'applicazione.Model and mapping files are often deployed in the same directory as the application executable file. Tali file possono essere distribuiti anche in un percorso specifico o inclusi come risorse incorporate nell'applicazione.These files can also be deployed in a specific location or included as an embedded resource in the application.

Le risorse incorporate vengono specificate nel modo seguente:Embedded resources are specified as follows:

Metadata=res://<assemblyFullName>/<resourceName>.   

Per la definizione del percorso di una risorsa incorporata, sono disponibili le opzioni seguenti:The following options are available for defining the location of an embedded resource:

OpzioneOption DescrizioneDescription
assemblyFullName Nome completo di un assembly con la risorsa incorporata.The full name of an assembly with the embedded resource. Include il nome semplice, il nome della versione, la lingua supportata e la chiave pubblica, nel modo seguente:The name includes the simple name, version name, supported culture, and public key, as follows:

ResourceLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Le risorse possono essere incorporate in qualsiasi assembly accessibile dall'applicazione.Resources can be embedded in any assembly that is accessible by the application.

Se si specifica un carattere jolly (*) per assemblyFullName, il runtime di Entity Framework cercherà le risorse nei percorsi seguenti, nell'ordine indicato:If you specify a wildcard (*) for assemblyFullName, the Entity Framework runtime will search for resources in the following locations, in this order:

1. L'assembly chiamante.1. The calling assembly.
2. Gli assembly a cui si fa riferimento.2. The referenced assemblies.
3. Gli assembly nella directory bin di un'applicazione.3. The assemblies in the bin directory of an application.

Se i file non sono in uno di questi percorsi, verrà generata un'eccezione.If the files are not in one of these locations, an exception will be thrown. Nota: quando si usa carattere jolly (*), Entity Framework deve esaminare tutti gli assembly di risorse con il nome corretto.Note: When you use wildcard (*), the Entity Framework has to look through all the assemblies for resources with the correct name. Per migliorare le prestazioni, specificare il nome dell'assembly anziché il carattere jolly.To improve performance, specify the assembly name instead of the wildcard.
resourceName Nome della risorsa inclusa, ad esempio AdvendtureWorksModel.csdl.The name of the included resource, such as AdvendtureWorksModel.csdl. I servizi di metadati cercheranno solo i file o le risorse con estensione csdl, ssdl o msl.The metadata services will only look for files or resources with one of the following extensions: .csdl, .ssdl, or .msl. Se la parola chiave resourceName non è specificata, verranno caricate tutte le risorse dei metadati.If resourceName is not specified, all metadata resources will be loaded. Le risorse devono disporre di nomi univoci all'interno di un assembly.The resources should have unique names within an assembly. Se più file con lo stesso nome sono definiti in directory diverse nell'assembly, la parola chiave resourceName deve includere la struttura di cartelle prima del nome della risorsa, ad esempio NomeCartella.NomeFile.csdl.If multiple files with the same name are defined in different directories in the assembly, the resourceName must include the folder structure before the name of the resource, for example FolderName.FileName.csdl.

resourceName non è obbligatoria quando si specifica un carattere jolly (*) per assemblyFullName.resourceName is not required when you specify a wildcard (*) for assemblyFullName.

Nota

Per migliorare le prestazioni, incorporare le risorse nell'assembly chiamante, ad eccezione degli scenari non Web in cui non è presente alcun riferimento ai file di mapping e di metadati sottostanti nell'assembly chiamante.To improve performance, embed resources in the calling assembly, except in non-Web scenarios where there is no reference to underlying mapping and metadata files in the calling assembly.

Nell'esempio seguente vengono caricati tutti i file di modello e di mapping nell'assembly chiamante, gli assembly a cui si fa riferimento e gli altri assembly nella directory bin di un'applicazione.The following example loads all the model and mapping files in the calling assembly, referenced assemblies, and other assemblies in the bin directory of an application.

Metadata=res://*/  

Nell'esempio seguente viene caricato il file model.csdl dell'assembly AdventureWorks e vengono caricati i file model.ssdl e model.msl dalla directory predefinita dell'applicazione in esecuzione.The following example loads the model.csdl file from the AdventureWorks assembly, and loads the model.ssdl and model.msl files from the default directory of the running application.

Metadata=res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.csdl|model.ssdl|model.msl  

Nell'esempio seguente sono caricate le tre risorse specificate dall'assembly specifico.The following example loads the three specified resources from the specific assembly.

Metadata=res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.csdl|   
res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.ssdl|   
res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/model.msl  

Nell'esempio seguente sono caricate tutte le risorse incorporate con estensioni csdl, msl e ssdl dall'assembly.The following example loads all the embedded resources with the extensions .csdl, .msl, and .ssdl from the assembly.

Metadata=res://AdventureWorks, 1.0.0.0, neutral, a14f3033def15840/  

Nell'esempio seguente carica tutte le risorse nel percorso di file relativo più "datadir\metadata\" dal percorso dell'assembly caricato.The following example loads all the resources in the relative file path plus "datadir\metadata\" from the loaded assembly location.

Metadata=datadir\metadata\  

Nell'esempio seguente vengono caricate tutte le risorse nel percorso del file relativo provenienti dal percorso dell'assembly caricato.The following example loads all the resources in the relative file path from the loaded assembly location.

Metadata=.\  

Supporto per la | DataDirectory | Stringa di sostituzione e operatore di radice dell'applicazione Web (~)Support for the |DataDirectory| Substitution String and the Web Application Root Operator (~)

DataDirectorye ~ (operatore) vengono utilizzati nel ConnectionString come parte del Metadata e Provider Connection String parole chiave.DataDirectory and the ~ operator are used in the ConnectionString as part of the Metadata and Provider Connection String keywords. EntityConnection inoltra DataDirectory e l'operatore ~ rispettivamente a MetadataWorkspace e al provider di archiviazione.The EntityConnection forwards the DataDirectory and the ~ operator to MetadataWorkspace and the store provider, respectively.

TermineTerm DescrizioneDescription
&#124;DataDirectory&#124; Si risolve in un percorso relativo di file di mapping e di metadati.Resolves to a relative path to a mapping and metadata files. Si tratta del valore impostato attraverso il metodo AppDomain.SetData("DataDirectory", objValue).This is the value that is set through the AppDomain.SetData("DataDirectory", objValue) method. La stringa di sostituzione DataDirectory deve essere circondata dai caratteri barra verticale e non può essere rappresentata da uno spazio vuoto tra il nome e i caratteri barra verticale.The DataDirectory substitution string must be surrounded by the pipe characters and there cannot be any whitespace between its name and the pipe characters. Il nome DataDirectory non supporta la distinzione tra maiuscole e minuscole.The DataDirectory name is not case-sensitive.

Se una directory fisica denominata "DataDirectory" deve essere passata come membro dell'elenco di percorsi di metadati, aggiungere uno spazio vuoto su un lato o su entrambi i lati del nome, ad esempio: Metadata="DataDirectory1 &#124; DataDirectory &#124; DataDirectory2".If a physical directory named "DataDirectory" has to be passed as a member of the list of metadata paths, add whitespace should on either side or both sides of the name, for example: Metadata="DataDirectory1 &#124; DataDirectory &#124; DataDirectory2". Un'applicazione ASP.NET risolve | DataDirectory | per la "<radice dell'applicazione > / app_data" cartella.An ASP.NET application resolves |DataDirectory| to the "<application root>/app_data" folder.
~ Si risolve nella radice dell'applicazione Web.Resolves to the Web application root. Il carattere ~ in una posizione iniziale viene sempre interpretato come l'operatore radice dell'applicazione Web (~), sebbene possa rappresentare una sottodirectory locale valida.The ~ character at a leading position is always interpreted as the Web application root operator (~), although it might represent a valid local subdirectory. Per fare riferimento a questo tipo di sottodirectory locale, l'utente deve passare in modo esplicito ./~.To refer to such a local subdirectory, the user should explicitly pass ./~.

DataDirectory e l'operatore ~ devono essere specificati solo all'inizio di un percorso in quanto non vengono risolti in altre posizioni.DataDirectory and the ~ operator should be specified only at the beginning of a path, they are not resolved at any other position. Entity Framework tenterà di risolvere ~/data, ma considererà /data/~ come un percorso fisico.The Entity Framework will try to resolve ~/data, but it will treat /data/~ as a physical path.

Un percorso che inizia con DataDirectory o con l'operatore ~ non può essere risolto in un percorso fisico al di fuori del ramo di DataDirectory e dell'operatore ~.A path that starts with the DataDirectory or the ~ operator cannot resolve to a physical path outside the branch of the DataDirectory and the ~ operator. Ad esempio, i percorsi seguenti risolveranno: ~ , ~/data , ~/bin/Model/SqlServer.For example, the following paths will resolve: ~ , ~/data , ~/bin/Model/SqlServer. I percorsi seguenti non riusciranno a risolvere: ~/.., ~/../other.The following paths will fail to resolve: ~/.., ~/../other.

DataDirectory e l'operatore ~ possono essere estesi per includere sottodirectory, nel modo seguente: |DataDirectory|\Model, ~/bin/ModelDataDirectory and the ~ operator can be extended to include sub-directories, as follows: |DataDirectory|\Model, ~/bin/Model

La risoluzione della stringa di sostituzione DataDirectory e l'operatore ~ è non ricorsiva.The resolution of the DataDirectory substitution string and the ~ operator is non-recursive. Ad esempio, quando DataDirectory include il carattere ~, si verificherà un'eccezione.For example, when DataDirectory includes the ~ character, an exception will occur. In questo modo viene impedita una ricorsione infinita.This prevents an infinite recursion.

Vedere ancheSee Also

Uso di provider di datiWorking with Data Providers
Considerazioni sulla distribuzioneDeployment Considerations
Gestione di connessioni e transazioniManaging Connections and Transactions
Stringhe di connessioneConnection Strings