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 EntityConnection conexión.
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
Cadena de conexión necesaria para establecer la conexión inicial a 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 intentó establecer la ConnectionString propiedad después de inicializar el EntityConnectionobjeto MetadataWorkspace . MetadataWorkspace se inicializa cuando la EntityConnection instancia se construye a través de la sobrecarga que toma como MetadataWorkspace parámetro o cuando se ha abierto la EntityConnection instancia.
No se ha proporcionado una palabra clave de cadena de conexión no válida o no se ha proporcionado una palabra clave de cadena de conexión necesaria.
Ejemplos
En el ejemplo siguiente se muestra cómo usar junto EntityConnectionStringBuilder con .SqlConnectionStringBuilder El código establece las propiedades de para SqlConnectionStringBuilder crear una SqlConnection cadena que proporciona parte de la cadena de conexión del proveedor subyacente. 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
Una 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 (=) conecta cada palabra clave y su valor. En la tabla siguiente se muestran los nombres válidos para los valores de palabras clave de 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 la 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 válidos de palabra clave-valor para el proveedor de datos. Un error en tiempo de ejecución no válido Provider Connection String provocará un error en tiempo de ejecución cuando el origen de datos lo evalúe.Esta palabra clave y la palabra clave Name se excluyen mutuamente.El valor de Provider Connection String debe estar entre comillas. A continuación se muestra un ejemplo:Provider Connection String ="Server=serverName; User ID = userID";El ejemplo siguiente no funcionará: Provider Connection String =Server=serverName; User ID = userID |
Metadata |
Se requiere si no se especifica la palabra clave Name. 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 tubería 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 , la palabra clave o los valores de la cadena de conexión se recuperan 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 una 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 Providervalores , Metadatay Provider Connection String se recuperan del archivo de configuración en tiempo de ejecución.
Los pares de palabra clave-valor también se pueden proporcionar directamente en la ConnectionString propiedad , como se muestra en el ejemplo siguiente. 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 los objetos se coloquen accidentalmente como System.Data.Common.CommandTrees y ObjectContext no se sincronicen con sus metadatos, EntityConnection deben bloquear sus metadatos. No se permite ningún cambio en la cadena de conexión una vez bloqueados los metadatos. A continuación se muestran dos escenarios en los que los metadatos están bloqueados:
La EntityConnection instancia se construye a través del constructor sin parámetros o mediante el EntityConnection(String) constructor , que acepta una cadena de conexión. En cualquier caso, la cadena de conexión puede cambiarse varias veces antes de que se abra la conexión. Llamar o OpenGetMetadataWorkspace bloquear los metadatos.
La EntityConnection instancia se construye a través del EntityConnection(MetadataWorkspace, DbConnection) constructor , que acepta y MetadataWorkspace .DbConnection En este caso, los metadatos se bloquean en tiempo de construcción. No se permite ningún cambio en la cadena de conexión.
Cuando se cargan los metadatos, comprueba EntityConnection que el modelo conceptual, el modelo de almacenamiento y el archivo de asignación están presentes.