lunes, 31 de marzo de 2014

Entity Framework Code First

Code First, de Entity Framework, es el último enfoque agregado al Entity Framework, e introducido en la versión 4.1 del Framework de .NET (Los dos enfoques previos son Database First y Model First). 

Este enfoque, como su nombre lo dice, se basa en codificar primero, es decir crear clases POCO (Plain Old CLR Objects), utilizando el lenguaje deseado, VB.NET, C#, etc. de las diferentes entidades, y crear relaciones entre las mismas, luego se crea automáticamente la base de datos. Esta es la principal utilidad del EF Code First, aunque también puede utilizarse con Bases de Datos existentes, lo cual nos da un mayor control sobre el código generado, ya que nada será realizado por el asistente. 

La ventaja principal que posee el enfoque "Code First", es que ya no debemos preocuparnos mas por Transact SQL, ni por la base de datos en sí, ya que la misma será la manera en que se persisten los objetos creados. En síntesis, estaremos programando solamente con C# o VB.NET y LINQ.



Para abordar este enfoque, se debe comenzar definiendo nuestras entidades, lo cual puede realizarse como objetos POCO.




Luego de la definición de todas las entidades necesarias, se debe proceder a crear la clase de contexto para interactuar con la base de datos.





Tratándose de una aplicación web, en nuestro archivo web.config debe determinarse la cadena conexión a la base de datos, dentro de la correspondiente sección <connectionStrings>.




Posteriormente a esta configuración inicial de nuestro modelo, y sin necesidad de crear siquiera nuestra base de datos en el servidor definido en el web.config, podemos utilizar el modelo, para crear un nuevo empleado, y al llamar al método SaveChanges() de nuestro contexto se procederá a crear la base de datos, la tabla correspondiente en la base de datos y se insertará un registro en la misma. 



Posteriormente podemos conectarnos al servidor de nuestra base de datos, y verificar que todo ocurrió tal como fue codificado con nuestro EF Code First.

Más adelante entraremos más en detalle en la definición de las clases POCO, para lograr que se realicen las validaciones correspondientes al momento de registrar datos en las entidades y por consecuencia en la base de datos.