EntityConnection.ConnectionString Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece la cadena de conexión 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
Valor de propiedad
La cadena de conexión requerida para establecer la conexión inicial con un origen de datos. El valor predeterminado es una cadena vacía. En una conexión cerrada, se devuelve el valor establecido actualmente. Si no se ha establecido ningún valor, se devuelve una cadena vacía.
Excepciones
Se ha realizado un intento de establecer la propiedad ConnectionString después de haberse inicializado MetadataWorkspace de EntityConnection. MetadataWorkspace se inicializa cuando la instancia de EntityConnection se crea mediante la sobrecarga que toma MetadataWorkspace como parámetro, o cuando la instancia de EntityConnection se ha abierto.
Se ha proporcionado una palabra clave de la cadena de conexión no válida, o no se ha proporcionado una palabra clave de la cadena de conexión requerida.
Ejemplos
En el ejemplo siguiente se muestra cómo se usa EntityConnectionStringBuilder junto con SqlConnectionStringBuilder. El código establece las propiedades de para SqlConnectionStringBuilder
crear una SqlConnection cadena que proporciona parte del proveedor subyacente cadena de conexión. Tenga en cuenta que el Provider
nombre no se puede establecer mediante SqlConnectionStringBuilder
, porque no usa la sintaxis válida SqlConnection
. El código crea la EntityConnection cadena estableciendo EntityConnectionStringBuilder
propiedades.
// 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
Comentarios
Un EntityClient
cadena de conexión consta de una secuencia de pares de parámetros de palabra clave-valor separados por punto y coma. El signo igual (=) asocia cada palabra clave a su valor. En la tabla siguiente se muestran los nombres válidos para los valores de palabra clave en la propiedad ConnectionString.
Palabra clave | Descripción |
---|---|
Provider |
Se requiere si no se especifica la palabra clave Name . El nombre del proveedor, que se usa para recuperar el objeto DbProviderFactory para el proveedor subyacente. Este valor es constante.Cuando la Name palabra clave no se incluye en el cadena de conexión, se requiere un valor no vacío para la Provider palabra clave. Esta palabra clave y la palabra clave Name se excluyen mutuamente. |
Provider Connection String |
Opcional. Especifica la cadena de conexión específica del proveedor que se pasa al origen de datos subyacente. Esta cadena de conexión se expresa mediante pares palabra clave-valor válidos para el proveedor de datos. Un valor de Provider Connection String no válido provocará un error en tiempo de ejecución cuando sea evaluado por el origen de datos.Esta palabra clave y la palabra clave Name se excluyen mutuamente.El valor de Provider Connection String debe estar entrecomillado. A continuación se muestra un ejemplo:Provider Connection String ="Server=serverName; User ID = userID"; El ejemplo siguiente no va a funcionar: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Se requiere si no se especifica la palabra clave Name . Una lista delimitada por canalizaciones de directorios, archivos y ubicaciones de recursos en las que buscar información de asignación y modelo. A continuación se muestra un ejemplo:Metadata= c:\model | c:\model\sql\mapping.msl; Los espacios en blanco a cada lado del separador de barra vertical se pasan por alto. Esta palabra clave y la palabra clave Name se excluyen mutuamente. |
Name |
La aplicación puede especificar, si se desea, el nombre de conexión en un archivo de configuración de la aplicación que proporcione los valores de cadena de conexión con pares palabra clave-valor necesarios. En este caso, no es posible suministrarlos directamente en la cadena de conexión. La palabra clave Name no se permite en un archivo de configuración.Cuando la palabra clave Name no se incluye en la cadena de conexión, se requiere un valor no vacío para la palabra clave Provider.Esta palabra clave y todas las demás palabras clave de cadena de conexión se excluyen mutuamente. |
La aplicación puede proporcionar la palabra clave o los valores directamente en la ConnectionString propiedad, o bien puede especificar un valor para la Name
palabra clave. Si se especifica la Name
palabra clave , el cadena de conexión palabra clave/valores se recupera de un archivo de configuración de aplicación, como se indica a continuación:
Name=AdventureWorksEntities;
Si la Name
palabra clave se usa en la ConnectionString propiedad , no se permiten otras palabras clave. La Name
palabra clave hace referencia a un cadena de conexión con nombre que se almacena en la connectionStrings
sección de un archivo de configuración de aplicación, como se muestra en el ejemplo siguiente. Los Provider
valores , Metadata
y Provider Connection String
se recuperan del archivo de configuración en tiempo de ejecución.
Los pares palabra clave-valor también se pueden suministrar directamente en la propiedad ConnectionString, como se muestra en el siguiente ejemplo. En este caso, no se usa la Name
palabra clave .
"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' "
Para evitar que objetos como System.Data.Common.CommandTrees y ObjectContext dejen de estar sincronizados involuntariamente con sus metadatos, EntityConnection debe bloquear los metadatos. No se permiten cambios en la cadena de conexión una vez bloqueados los metadatos. A continuación se presentan dos escenarios en los que se bloquean los metadatos:
La EntityConnection instancia se construye a través del constructor sin parámetros o mediante el EntityConnection(String) constructor , que acepta un cadena de conexión. En cualquiera de los casos, la cadena de conexión se puede cambiar varias veces antes de abrirse la conexión. La llamada a los métodos Open o GetMetadataWorkspace bloquea los metadatos.
La instancia de EntityConnection se crea mediante el constructor EntityConnection(MetadataWorkspace, DbConnection), que acepta MetadataWorkspace y DbConnection. En este caso, los metadatos se bloquean en el momento de la creación. No se permiten en ningún caso cambios en la cadena de conexión.
Cuando se cargan los metadatos, EntityConnection comprueba que el modelo conceptual, el modelo de almacenamiento y el archivo de asignación estén presentes.