En este artículo trataremos la creación y configuración de un pequeño proyecto usando Entity Framework. Para ello, explicaré ciertos conceptos básicos pero sin entrar mucho en detalle para no desviarnos de nuestro objetivo.
¿Que es Entity Framework?
Es el conjunto de herramientas y apis proporcionadas por Microsoft para el acceso a datos a través de un modelo basado en entidades, abstrayendo al programador de la Base de datos. En pocas palabras, es el ORM de Microsoft para .NET.
Configuración del acceso a datos con Entity Framework
Lo primero como siempre creamos una nuevo proyecto, ya sea web, móvil, o un simple programa de consola para poder empezar. Una vez creado, agregamos una biblioteca de clases donde colocar nuestra capa de acceso a datos. Como veis, esto es exactamente igual que si no usáramos EF.
Ahora vamos a añadir nuestro contexto de conexión, para ello, creamos un nuevo archivo dentro de la capa de acceso a datos de tipo .edmx
Después de asignarle un nombre, nos saldrá una ventana donde nos dará a elegir si usamos como modelo una Base de datos ya existente (Database First) o en cambio creamos un modelo de cero (Model First). En Entiy Framework 4.1 surgió una nueva forma de trabajar Code First, que nos permite codificar primero el modelo. En este ejemplo para simplificar las cosas vamos a usar un BD existente:
Tras esto, establecemos una conexión con la BD de datos, elegimos con la que vamos a trabajar, en nuestro caso usaremos la BD de ejemplo del SQL Server 2008 R2 "AdventureWorks"
La cadena de conexión se creará automáticamente, solo tendremos que establecer un nombre y si se guardará la contraseña en el archivo de configuración o si la pasamos por código
Finalmente, deberemos elegir qué tablas, vistas, procedimientos... de la base de datos vamos a utilizar para este contexto de conexión. Para este ejemplo voy a seleccionar solamente 4 tablas:
Con esto tendremos creadas nuestras entidades y relaciones. Ya tenemos todo preparado para usarse.
Si vemos las propiedades de una de las entidades, podemos ver como Entity Framework ha asociado cada uno de los campos de las tablas de las bases de datos, a un atributo de las entidades generadas.
Como dato curioso, podemos ver la singularización del paso de tabla a entidad, donde la tabla "people" se ha transformado en la entidad person. Esto funcionara bastante bien en ingles, pero si denominamos a nuestras tablas con nombre en castellano, como mucho lograremos que quite la ultima s.
Uso de Entity Framework
Ahora que tenemos creado el acceso a datos, deberemos incluir la referencia en el proyecto donde vamos a usar estos datos. Por simplificar, voy a hacerlo directamente desde un pequeño programa de consola.
Importante, crear un archivo de configuración y añadir la cadena de conexión ya que entity framework la tomará de aquí en vez del proyecto donde se creo.
Una vez configurado, podemos hacer uso de él de una manera bastante sencilla. Para ello creamos un contexto de conexión, y si queremos podemos sacar directamente un listado de los usuarios que cumplan una condición:
ContextoEntidades con = new ContextoEntidades();
List<Person> lista_personas = con.People.Where(c=>c.cond==true).ToList();
Con esta pequeña sentencia habremos seleccionado y transformado en objetos un conjunto de datos de la base de datos.
Como conclusión, podemos observar con este último ejemplo, que hemos accedido a la BD sin necesidad de usar sql, ni realizar transformaciones posteriores para encapsular los registros en objetos. Con esto, las posibilidades son infinitas, ya que al abstraer al programador de la base de datos, podemos estar seguros de trabajar con una tecnología que aunque haya cambios de base de datos, va a seguir funcionando. Además de la rapidez a la hora de codificar, eliminando de las tareas a realizar el CRUD de las entidades.
Eso si, dedícale tiempo para entender como funciona, sino puedes puedes llegar a ser contraproducente, ejemplo: Lazy Load
Presentación