Você está na página 1de 7

INTRODUCCIN

Microsoft Entity Framework abstrae el esquema de base de datos lgica relacional y


presenta un esquema conceptual para la aplicacin .NET. Proporciona mapeo objetorelacional para desarrolladores .NET. Code First permite a los desarrolladores crear
clases de la mano con la programacin, ya que en el modelo DataBase First el
programador se adecua al modelo de la base de datos ya creada o existente, mientras
que en Code First el programador crea las entidades y las relaciones segn a como se
adecue su programacin y como lo necesite, Code First Migrations permite a los
desarrolladores evolucionar el modelo basado en el cdigo para que los cambios se
reflejen con precisin en el almacn de base de datos..

1. CODE FIRST
Code First es un enfoque ms de Entity Framework (hay otros dos enfoques que son
Database First y Model First) que plantea lo siguiente: T crea clases POCO (Plain Old
Class Object) con tu lenguaje favorito (C#, VB.NET, etc.) y crea relaciones entre las
mismas.
Lo importante es entender que con Code First, lo primero es el cdigo. En vez de
comenzar creando la base de datos y despus con ingeniera inversa generar las
clases POCO (como hacamos con Database First), con Code First primero creamos el
modelo con cdigo y despus se genera automticamente la base de datos.
Para poder comenzar a utilizar este nuevo enfoque, ser necesario que descarguemos,
al menos la versin 4.1, de Entity Framework o la instalemos desde el Administrador de
Paquetes NuGet.
Una vez instalado, ser necesario que empecemos con la definicin de nuestras
entidades, que podremos definir como Objetos POCO. Ejemplo de clase POCO:

Despus de la creacin de nuestros objetos, ser necesario que definamos nuestra


clase de contexto, para que podamos interactuar con la Base de Datos, donde adems
de definir un constructor genrico y las sobrecargas que necesitemos, definiremos las
colecciones de las entidades que necesitemos:

Despus de estos pasos, ya podremos empezar a utilizar Entity Framework, sin haber
creado la base de Datos (subrayado):

La invocacin al mtodo SaveChanges va a ser la encargada de definir la Base de


Datos si no existe y registrar el nuevo cliente en la tabla Clientes de la Base de datos.

2. CODE FIRST MIGRATIONS


Para poder usar Migrations con el proyecto de nuestro modelo de negocio, es
necesario habilitar Migrations para el proyecto.
Comenzaremos abriendo la ventana del Package Manager Console y ejecutamos el
comando Enable-Migrations. Es muy importante seleccionar el proyecto sobre el que
queremos habilitar Migrations:

Esto nos creara en nuestro proyecto una carpeta Migrations con una clase
Configuration en la que podremos definir algunas de las caractersticas de
comportamiento de Migrations como la activacin de las actualizaciones automticas,
o, podremos incluir cdigo especializado para el mapeo de nuestro modelo sobre la
base de datos usando Fluent API :

3. Crear una migracin


Una vez habilitado Migrations y una vez definido nuestro modelo (al menos en su
mayor parte), podemos proceder a preparar una migracin. Para preparar una
migracin disponemos del comando: Add-Migration
Lo ms probable cuando usamos Code First es que partamos de una base de datos
vaca, en cuyo caso Add-Migration generar el cdigo necesario para crear nuestras
tablas completas con sus relaciones, claves, Foreing Keys, etc y crear tambin el

snapshot que se almacenar en la tabla (MigrationHistory) que mantiene la historia


de las migraciones.
Cada vez que se ejecuta el comando Add-Migration se compara el modelo con el
ltimo snapshot para determinar los cambios a realizar.
El comando Add-Migration necesita que le especifiquemos un nombre de
migracin, EF generar un fichero con el cdigo necesario para realizar los cambios
en la base de datos. El nombre de este fichero ser el nombre que le hayamos
proporcionado como parmetro en el comando Add-Migration con un prefijo que la
agrega EF basado en un timestamp, de forma que cada migracin tenga un nombre
nico que la pueda identificar. Este comando necesita que le indiquemos la cadena de
conexin que se utilizar para la conexin de la migracin:
StartupProjectName= AccesoDatos

Cada vez que ejecutamos el comando Add-Migration EF nos agrega un nuevo archivo basado
en las diferencias encontradas con el snapshot anterior.

4. Aplicar una migracin


Una vez creada la migracin ha llegado el momento de actualizar la base de datos con
estos cambios. Para esto disponemos del comando: Update-Database
Este comando se encarga de aplicar los cambios generados a nuestra base de datos.
De nuevo nos encontramos con 2 escenarios posibles: el primero cuando la base de
datos est vaca y el segundo cuando la base de datos ya ha sido inicializada
previamente.
Si la base de datos est vaca, el comando Update-Database crear la tabla
(_MigrationHistory) adems de aplicar los cambios en la base de datos. Tambin
guardar el snapshot generado por el comando Add-Migration en la
tabla _MigrationHistory.

Y nuestra base de datos ser actualizada segn los cambios especificados en el


archivo de migracin.
Cada vez que ejecutamos un comando "Add-Migration EF crea un nuevo archivo de
migracin con las diferencias encontradas con el estado anterior de la base de datos.
El comando Update-Database tambin nos permite retroceder a un estado anterior de
una migracin especfica. Lo podemos hacer mediante el parmetro
-TargetMigration especificando el nombre de una migracin existente (mucho mejor si
es el nombre completo incluyendo el timestamp):
-TargetMigration: MigracionDesarrollo o

-TargetMigration: 201506052109355_MigracionDesarrollo

5. Conclusin
Como podemos observar Code First Migrations te permite modificar la base de datos
como tambin el ir y venir de una migracin si sucede algn error, ya que no se poda
realizar el cambios en la base de datos que se programaba, como el insertar, modificar,
eliminar, etc.

Você também pode gostar