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 modelo conceptual. Para más información sobre los modelos conceptuales, consulte Modelado y asignación. EntityClient utiliza otros proveedores de datos .NET Framework para tener acceso al origen de datos. Por ejemplo, EntityClient utiliza el Proveedor de datos .NET Framework para SQL Server (SqlClient) al tener acceso a una base de datos de SQL Server. Para más información sobre el proveedor SqlClient, consulte SqlClient para Entity Framework. El proveedor de EntityClient se implementa en el espacio de nombres System.Data.EntityClient.
Administrar conexiones
Entity Framework se basa en los proveedores de datos ADO.NET específicos de almacenamiento que ofrecen un objeto EntityConnection a una base de datos relacional y a un proveedor de datos subyacente. Para crear un objeto EntityConnection, hay que hacer referencia a un conjunto de metadatos que contiene la asignación y los modelos necesarios, y también al nombre de un proveedor de datos específico del almacenamiento y una cadena de conexión. Una vez activado el objeto EntityConnection, se puede acceder 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 recompilen las cadenas de conexión existentes, utilizando las propiedades y los métodos de la clase.
Crear consultas
El lenguaje de Entity SQL es un dialecto independiente del almacenamiento de SQL que trabaja directamente con esquemas de entidades conceptuales y admite conceptos de Entity Data Model, 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 más información sobre cómo escribir consultas de Entity SQL, consulte Lenguaje Entity SQL.
En el ejemplo siguiente se crea un objeto EntityCommand y se asigna un texto de consulta de Entity SQL a su propiedad EntityCommand.CommandText. Esta consulta de Entity SQL solicita productos del modelo conceptual ordenados por el precio de venta. 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 medio de comunicación entre el espacio de nombres 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 modelo conceptual. Para ejecutar el comando que devuelve el EntityDataReader, llame a ExecuteReader. EntityDataReader implementa IExtendedDataRecord para describir resultados estructurados enriquecidos.
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.
Para actualizar los datos que se exponen a través de un modelo conceptual, consulte Cómo: Administrar transacciones en Entity Framework.
En esta sección
Procedimiento para ejecutar una consulta que devuelve resultados PrimitiveType
Procedimiento para ejecutar una consulta que devuelve resultados StructuralType
Procedimiento para ejecutar una consulta que devuelve resultados RefType
Procedimiento para ejecutar una consulta que devuelve tipos complejos
Procedimiento para ejecutar una consulta que devuelve colecciones anidadas
Procedimiento para ejecutar una consulta parametrizada de Entity SQL mediante EntityCommand
Procedimiento para ejecutar un procedimiento almacenado parametrizado mediante EntityCommand
Procedimiento para ejecutar una consulta polimórfica
Procedimiento para navegar por las relaciones con el operador Navigate