Compartir por


EntityConnection.ConnectionString Propiedad

Definición

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:

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

Se aplica a

Consulte también