EntityConnection.ConnectionString Propiedad

Definición

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 Providervalores , Metadatay 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:

Cuando se cargan los metadatos, EntityConnection comprueba que el modelo conceptual, el modelo de almacenamiento y el archivo de asignación estén presentes.

Se aplica a

Consulte también