Compartir a través de


Trabajar con datos de entidad

Entity Framework compila un conjunto de esquemas conceptual y de almacenamiento, junto con las asignaciones entre ellos, en pares bidireccionales de instrucciones de Entity SQL con la denominación vistas de cliente. Estas vistas controlan el procesamiento de consultas y actualizaciones en el motor en tiempo de ejecución. El compilador de asignaciones que genera las vistas se puede invocar en tiempo de diseño o en tiempo de ejecución cuando la primera consulta se ejecuta en un esquema de Entity Data Model (EDM).

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.

Cuando se ejecuta una consulta, se analiza y se convierte en un árbol de comandos canónico, que es una representación del modelo de objetos de la consulta. Los árboles de comandos canónicos representan comandos SELECT, UPDATE, INSERT y DELETE. La totalidad del procesamiento subsiguiente se realiza en el árbol de comandos, que es el medio de comunicación entre el proveedor de System.Data.EntityClient y el proveedor de datos de .NET Framework subyacente, como System.Data.SqlClient.

El diagrama siguiente muestra la arquitectura de Entity Framework para el acceso a datos:

Consultar objetos

Las herramientas de Entity Framework generan una clase derivada de ObjectContext que representa el contenedor de entidades definido en el modelo conceptual. La clase ObjectContext admite consultas en un modelo EDM que devuelve entidades como objetos, así como la creación, actualización y eliminación de objetos entidad. Entity Framework admite consultas de objeto en un modelo EDM. Las consultas se pueden crear utilizando métodos del generador de consultas de objeto, Language-Integrated Query (LINQ) y Entity SQL.

En un modelo conceptual, las entidades se relacionan entre sí mediante asociaciones. En la capa de objeto, estas asociaciones están representadas por propiedades que exponen colecciones de objetos relacionados de acuerdo con una referencia de entidad. Por ejemplo, en el modelo School, Department.Course obtiene una colección de entidad de objetos Course basada en la asociación entre Course y Department. Dado que los objetos a los que se hace referencia no se cargan automáticamente, se debe llamar al método Load en la referencia de entidad para cargar los datos de objetos relacionados en el contexto del objeto. También puede especificar la ruta de una consulta que defina qué objetos relacionados se han de cargar con los objetos devueltos. Para obtener más información, vea Consultar datos como objetos (Entity Framework).

En el ejemplo siguiente del tutorial rápido se muestra una consulta que, cuando se ejecuta, recupera todos los objetos Department. Una definición de la ruta de una consulta garantiza que también se devuelvan los objetos Course relacionados con los objetos Department. Una cláusula WHERE de Entity SQL ordena los objetos devueltos por Name.

' Define a query that returns all Department objects and related
' Course objects, ordered by name.
Dim departmentQuery As ObjectQuery(Of Department) = _
    schoolContext.Department.Include("Course").OrderBy("it.Name")
// Define a query that returns all Department objects and related
// Course objects, ordered by name.
ObjectQuery<Department> departmentQuery =
    schoolContext.Department.Include("Course").OrderBy("it.Name");

Para obtener más información, vea Consultar datos como objetos (Entity Framework).

Puede definir un modelo EDM que utilice procedimientos almacenados para ejecutar consultas en el origen de datos. Los conjuntos de resultados de estos procedimientos almacenados se asignan a entidades en el modelo conceptual. Para obtener más información, vea Compatibilidad con los procedimientos almacenados (Entity Framework).

Trabajar con objetos

Un objeto en un contexto del objeto es una representación de tipo de entidad de datos en el origen de datos. Puede modificar, crear y eliminar objetos en un contexto del objeto. El contexto del objeto administra las identidades y relaciones entre objetos. También puede serializar objetos y enlazarlos a controles. Para obtener más información, vea Trabajar con objetos (Entity Framework).

En el ejemplo siguiente del tutorial rápido se obtiene una colección de objetos Course relacionados con un objeto Department y se enlaza la colección a un control DataGridView.

' Get the object for the selected department.
Dim department As Department = _
    CType(Me.departmentList.SelectedItem, Department)

' Bind the grid view to the collection of Course objects 
' that are related to the selected Department object.
courseGridView.DataSource = department.Course
// Get the object for the selected department.
Department department = 
    (Department)this.departmentList.SelectedItem;

// Bind the grid view to the collection of Course objects 
// that are related to the selected Department object.
courseGridView.DataSource = department.Course;

Entity Framework realiza el seguimiento de los cambios en los datos de entidad y permite conservar los cambios en el origen de datos. En el ejemplo siguiente del tutorial rápido, los cambios en el contexto del objeto se escriben en la base de datos.

' Save object changes to the database, display a message, 
' and refresh the form.
numChanges = schoolContext.SaveChanges()
// Save object changes to the database, display a message,
// and refresh the form.
numChanges = schoolContext.SaveChanges();

Para obtener más información, vea Agregar, modificar y eliminar objetos (Entity Framework).

Puede definir un modelo EDM que utilice procedimientos almacenados para insertar, actualizar y eliminar datos en el origen de datos. Estos procedimientos almacenados se asignan a entidades en el modelo conceptual. Para obtener más información, vea Compatibilidad con los procedimientos almacenados (Entity Framework).

Vea también

Conceptos

Ejemplos de LINQ to Entities
Tipos del Entity Data Model
Relaciones del Entity Data Model

Otros recursos

Servicios de objeto (Entity Framework)
Escenarios de la aplicación (Entity Framework)