Introducción a ADO.NET Entity Framework (1)

25/06/2012

ADO.NET Entity Framework, es el nuevo marco de trabajo (framework) o conjunto de tecnologías para el desarrollo de aplicaciones orientadas a datos que ha aparecido en la versión 4.0 del .NET Framework. Este nuevo framework es la continuación y mejora de LinQ to SQL que ya nos proporcionó Microsoft en .NET Framework 3.5.

El Entity Framework (EF) nos permite generar nuestras aplicaciones a nivel de objetos y clases que es como se desarrollan las aplicaciones y olvidarnos de que hay una base de datos por detrás. El EF permite mapear nuestro modelo de objetos a un modelo físico de la base de datos, igual que un ORM (Object-Relational Mapping). El EF es similar al ORM de Java: hibernate.

Cuando trabajamos con el EF, lo hacemos a nivel de entidades o clases. Por ejemplo, imaginemos que tenemos una clase que representa un pedido. Ese pedido de alguna manera tiene que almacenarse en unas tablas en la base de datos, pero a nivel de programación trabajamos con el objeto pedido. Por tanto si queremos crear un nuevo pedido, crearemos un objeto de tipo pedido, rellenaremos sus datos, el id del cliente, fecha, artículos del pedido y cuando hayamos finalizado, guardaremos el pedido. En ese momento, el pedido debe hacerse persistente, osea almacenado en la tablas de una base de datos. Ahí es donde entra el EF que se encarga de mapear el objeto pedido, en las tablas correspondientes de la base de datos, por ejemplo tabla_lineapedido y tabla_pedido.

Para empezar a trabajar con el EF, lo primero que necesitamos es tener claro las entidades y clases de nuestro modelo de objetos de nuestra aplicación. En el ejemplo de este post, nuestro modelo va a ser una clase de tipo contacto que almacenará los datos de los contactos de nuestra aplicación y una clase de tipo actividad que almacenará las actividades que hagan dichos contactos. Por tanto habrá una relación de 1 a muchos entre los contactos y las actividades, osea un contacto puede tener muchas actividades. Una vez tenemos claras dichas entidades, debemos plasmarlas en nuestra aplicación de .NET.

Para empezar, creamos una aplicación de consola de VB.NET y nada más crearla, seleccionamos la aplicación, botón derecho del ratón, Seleccionamos Añadir y seleccionamos Nuevo Elemento. De los nuevos elementos, seleccionaremos ADO.NET Entity Data Model.

Asistente ADO.NET Entity Data Model

Asistente ADO.NET Entity Data Model

El ADO.NET Entity Data Model es un asistente que nos permite diseñar de forma gráfica nuestro modelo de entidad de una forma muy sencilla e intuitiva y podemos tener dos alternativas:

  • Crear el modelo, a partir de la base de datos ya existente
  • Crear un modelo en blanco, añadir las entidades y generar la base de datos.

En el caso de seleccionar la primera opción, el asistente permite seleccionar una base de datos y las tablas que queremos mapear.

Asistente EF seleccionando la base de datos

Asistente EF seleccionando la base de datos

En el caso de seleccionar la opción en blanco, dibujamos las entidades y con el botón derecho del ratón seleccionamos la opción Generate Database from Model la cuál nos permite genera el script de la base de datos a partir del modelo visual generado.

Asistente para generar el script de la base de datos a partir del modelo

Asistente para generar el script de la base de datos a partir del modelo

Para el ejemplo de nuestro post, hemos generado dos entidades denominadas Contacto y Actividad las cuáles están relacionadas por una relación de 1 a muchos.

Modelo con el Contacto y la Actividad relacionada

Modelo con el Contacto y la Actividad relacionada

Independientemente de si generamos el modelo a partir de la base de datos, o de la base de datos a partir del modelo, si accedemos al fichero de código del modelo.edmx, veremos que se han generado clases parciales para cada entidad. Si vemos el código, vemos que este modelo se ha generado a través de una clases denominada gestionEntities que hereda de ObjectContext. El objeto ObjectContext es el encargado de gestionar las clases del modelo y su mapeado a la base de datos. Además para cada entidad del modelo, nos crea una clase parcial con algún método básico de creación del objeto.

Código de definición del ObjectContext

Código de definición del ObjectContext

Clase parcial del contacto que puede ser extendida

Clase parcial del contacto que puede ser extendida

A partir de aquí, ya podemos llamar a nuestro ObjectContext y empezar a trabajar con nuestras clases ya definidas. Esto lo vemos en un segundo post sobre ADO.NET Entity Framework (2).

4 comentarios to “Introducción a ADO.NET Entity Framework (1)”


  1. […] el post que iniciamos de introducción a ADO.NET Entity Framework (1), recordando el asistente ADO.NET Entity Data Model de Visual Studio 2010 que nos permite generar el […]

  2. Anónimo Says:

    hola Santi enhorabuena, por mantener este blog saluados


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: