Share via


Proveedor de EntityClient para Entity Framework

El proveedor de EntityClient es un proveedor de datos que usan las aplicaciones de Entity Framework para tener acceso a los datos descritos en un Entity Data Model (EDM). Para obtener información acerca de los EDM, vea Modelado de datos en Entity Framework. EntityClient utiliza otros proveedores de datos de .NET Framework para tener acceso al origen de datos. Por ejemplo, EntityClient utiliza el Proveedor de datos de .NET Framework para SQL Server (SqlClient) al tener acceso a una base de datos de SQL Server. Para obtener información acerca del proveedor SqlClient, vea .Proveedor de datos de .NET Framework para SQL Server (SqlClient) de Entity Framework. El proveedor de EntityClient se implementa en el espacio de nombres System.Data.EntityClient.

Administrar las conexiones

Entity Framework se basa en proveedores de datos ADO.NET específicos del almacenamiento proporcionando un objeto EntityConnection a un proveedor de datos subyacente y una base de datos relacional. Para crear un objeto EntityConnection, se ha de hacer referencia a un conjunto de metadatos que contiene la asignación y los modelos necesarios, y también el nombre de un proveedor de datos específico del almacenamiento y una cadena de conexión. Una vez activado el objeto EntityConnection, se puede tener acceso a las entidades a través de las clases generadas desde el modelo conceptual.

Se puede especificar una cadena de conexión en el archivo app.config.

El espacio de nombres System.Data.EntityClient también incluye la clase EntityConnectionStringBuilder. Esta clase permite que los programadores creen mediante programación cadenas de conexión sintácticamente correctas, y que analicen y vuelvan a generar cadenas de conexión existentes, utilizando las propiedades y los métodos de la clase. Para obtener más información, vea Cómo generar una cadena de conexión EntityConnection (Entity Framework).

Crear consultas

El lenguaje de Entity SQL es un dialecto de SQL independiente del almacenamiento que trabaja directamente con esquemas de entidades conceptuales y admite características de EDM, como la herencia y las relaciones. La clase EntityCommand se utiliza para ejecutar un comando de Entity SQL con un modelo de la entidad. Cuando se crean objetos de EntityCommand, se puede especificar un nombre de procedimiento almacenado o un texto de consulta. Entity Framework trabaja con proveedores de datos específicos del almacenamiento para traducir el Entity SQL genérico en consultas específicas del almacenamiento. Para obtener más información acerca de cómo escribir consultas de Entity SQL, vea Lenguaje Entity SQL.

En el ejemplo siguiente se crea un objeto de EntityCommand y se asigna un texto de consulta de Entity SQL a su propiedad System.Data.EntityClient.EntityCommand.CommandText. Esta consulta de Entity SQL solicita productos ordenados por el precio de venta del modelo conceptual. El código siguiente no tiene conocimiento alguno del modelo de almacenamiento.

EntityCommand cmd = conn.CreateCommand();

cmd.CommandText = @"``SELECT VALUE p

FROM AdventureWorksEntities.Product AS p

ORDER BY p.ListPrice ";

Ejecutar consultas

Cuando se ejecuta una consulta, se analiza y se convierte en un árbol de comandos canónico. Todo el procesamiento subsiguiente se realiza en el árbol de comandos. El árbol de comandos es el medios de comunicación entre System.Data.EntityClient y el proveedor de datos de .NET Framework subyacente, como System.Data.SqlClient.

EntityDataReader muestra los resultados de ejecutar EntityCommand en un EDM. Para ejecutar el comando que devuelve EntityDataReader, llame a ExecuteReader. EntityDataReader implementa IExtendedDataRecord para describir resultados estructurados enriquecidos. Para obtener más información, vea How to: Execute an Entity SQL Query Using EntityCommand(Entity Framework).

Administrar transacciones

En Entity Framework, hay dos maneras de utilizar las transacciones: automática y explícita. Las transacciones automáticas usan el espacio de nombres System.Transactions y las transacciones explícitas usan la clase EntityTransaction.

No puede utilizar la sintaxis EntityCommand para actualizar los datos que se exponen a través de un Entity Data Model (EDM); debe utilizar Servicios de objeto. Para obtener información sobre cómo actualizar los datos con Servicios de objeto, vea Cómo administrar transacciones de Servicios de objeto (Entity Framework).

Vea también

Otros recursos

Administrar conexiones y transacciones (tareas de Entity Framework)
ADO.NET Entity Framework
Tareas de Entity Framework
Referencia de características (Entity Framework)
Servicios de objeto (Entity Framework)