martes, 16 de septiembre de 2014

Code First - Visual Studio 2013 Part 2


Agregamos una nueva entidad llamada Post.
Como propiedades tendrá una referencia a Blog (BlogId) y Blog que se utilizara como navegación.


Para agregar una nueva entrada al Blog.


Salida en la consola

Para agregar un post al Blog que agregamos.
Llenamos en la propiedad Blog a la primera entidad por defecto que tenemos en el ejemplo. (Propiedad FirstOrDefault)


Vemos en la siguiente imagen la entidad Blog en la base de datos


Vemos en la siguiente imagen la entidad Post en la base de datos, donde un blog acepta mas de una entrada para un Blog especifico. En este caso la relación es de 1 a * (Un blog tiene muchos Post)

martes, 9 de septiembre de 2014

Code First - Visual Studio 2013 Part 1


Creación de un proyecto de consola con Visual Studio 2013.


Agregamos al proyecto el framework de entity framework (versión 6.1.1)




En el proyecto automáticamente se agrega la referencia de entityframework.




Creamos una clase blog con dos propiedades publicas
Creamos una clase de contexto que hereda de dbcontext
Utilizamos en nuestro programa de la siguiente forma.


Una vez ejecutado la solución. Agregamos una conexión a la base de datos creada.



Code First automáticamente genero la base de datos, con su tabla "Blogs",  y a su vez crea una tabla llamada _MigrationHistory que su intención es guardar todos las cambios que realizamos en la base de datos.

En la consola de paquetes ejecutamos el siguiente comando:
Enable-Migrations

Luego de ejecutado el comando, nos crea por defecto la base de datos que hasta el momento tenemos como "Initial"


Luego si agregamos un campo a la clase Blog, como ser Url.
Ejecutamos el siguiente comando Add-Migration para crear una clase con los cambios, llamado "AddBlogUrl"



Una vez ejecutado el comando, podemos ver que crea una clase donde tiene el cambio que realizamos



Actualizamos contra la base de datos, con el siguiente comando:

Update-Database


Por ultimo vemos que la tabla Blogs se agrego el campo "Url"

Vemos también que en la tabla _MigrationHistory guarda cada uno de los cambios asociados a nuestro proyecto.