Sei sulla pagina 1di 8

Ao de la Diversificacin Productiva y del Fortalecimiento de la Educacin

UNIVERSIDAD PERUANA LOS ANDES


FACULTAD DE INGENIERA
ESCUELA ACADMICO PROFESIONAL DE INGENIERA DE
SISTEMAS Y COMPUTACIN

TRABAJO DE INVESTIGACION:

CODE FIRST MIGRATIONS

CATEDRA:

Desarrollo de Sistemas I

CATEDRATICO:

ING. JORGE VEGA FLORES

PRESENTADO POR:

PEA NEZ, Jefferson Antonio

CICLO:

VIII

HUANCAYO - PER
2015

INDICE

INDICE ........................................................................................................................................... 1
INTRODUCCION ............................................................................................................................ 2
CODE FIRST MIGRATIONS............................................................................................................. 3
1.

2.

Code First Initializers ......................................................................................................... 3


1.1.

CreateDatabaseIfNotExists........................................................................................ 3

1.2.

DropCreateDatabaseWhenModelChanges. .............................................................. 3

1.3.

DropCreateDatabaseAlways...................................................................................... 3

Code First Migrations ........................................................................................................ 3


2.1.

Construccin De Un Modelo Inicial Y De Base De Datos........................................... 4

2.2.

Habilitacin de Migraciones ...................................................................................... 6

2.3.

Generacin y Ejecucin de Migraciones ................................................................... 6

2.4.

Actualizacion de la Base de Datos ............................................................................. 7

TABLA DE IMAGENES
Imagen 1: Creacin de una aplicacin en consola "CFMigrations" ............................................... 4
Imagen 2: Instalacin de la versin ms reciente de EF ............................................................... 4
Imagen 3: Creacin de la clase alumno y la clase persona ........................................................... 5
Imagen 4: Creacin de la clase Program.cs ................................................................................... 5
Imagen 5: Base de datos creada al ejecutar la aplicacin............................................................. 5
Imagen 6: Ejecutando el comando Enable-Migrations ................................................................. 6
Imagen 7: Carpeta Migrations creada despues de ejecutar el comando Enable-Migrations ....... 6
Imagen 8: Cambios generados en la clase Alumno ....................................................................... 6

INTRODUCCION
Le ha pasado que cuando usted se encuentra en el proceso de elaboracin de su
proyecto en visual estudio y desea realizar algn cambio en su base de datos como
agregar un nuevo campo a la tabla entre otras cosas y no lo consigue fcilmente, porque
usted tiene que eliminar la base de datos y volverla a crear, de esta forma recin logra
conseguir sus cambios necesarios y pierde el contenido de sus tablas.
En este trabajo de investigacin sobre Code First Migrations nos olvidaremos por
completo de ese trabajo incomodo de actualizar nuestra base de datos puesto que Code
First Migrations Migraciones le permiten evolucionar de forma incremental
el esquema de base de datos como sus cambios de modelo. Hay muchas soluciones de
migracin disponibles, pero ninguno que se integran con el Code First. Cada conjunto de
cambios a la base de datos se expresa en un archivo de cdigo, conocida como una
migracin.
De esta manera CF Migrations le permite crear una nueva base de datos o actualizar una
existente basado en sus clases del modelo mediante el uso de la consola de
Administrador de paquetes de base de datos existe dentro de Visual Studio 2013 o Visual
Studio 2012.

CODE FIRST MIGRATIONS


Antes de entender Code First Migrations, vamos a echar un vistazo a Code First
Initializers de base de datos proporcionados por Entity Framework. Cuando sigues
cdigo EF primera aproximacin, entonces usted tiene tres opciones para inicializar la
base de datos como se muestran a continuacin.
1. Code First Initializers
1.1. CreateDatabaseIfNotExists
Esta es la clase de inicializacin de la base de datos por defecto utilizado por
Code First. Esta clase crea una base de datos slo si no existe. Este inicializador
le ayuda a evitar el borrado accidental de la base de datos.
1.2. DropCreateDatabaseWhenModelChanges.
Esta clase de inicializacin de base de datos elimina la base de datos existente
y re-crea que si hay un desajuste entre las clases del modelo y esquema de la
tabla. Este inicializador es til durante el arranque fase de desarrollo y pruebas
cuando los modelos estn cambiando a menudo y no hay preocupacin por los
registros de base de datos existentes.
1.3. DropCreateDatabaseAlways
Esta clase de inicializacin siempre elimina y vuelve a crear una nueva base de
datos, si ya est presente o no con cada ejecucin de la aplicacin. Este
inicializador es til durante la prueba cuando se quiere ejecutar la aplicacin
con un nuevo conjunto de datos.
2. Code First Migrations
Code First Migrations est disponible como paquete EntityFramework.Migrations
NuGet. Una vez instalado, se agrega un par de comandos por la consola de
Administrador de paquetes que puede ser utilizado para generar migraciones en
ejecucin. Al crear una migracin aplicar cambios en la base de datos. Migrations
se expresan en cdigo, y una vez la migracin se ha creado, usted es libre de editar
el cdigo que se ha generado para usted.
Te has dado cuenta que cuando desarrollas una aplicacin nueva, el modelo de datos
cambia con frecuencia y cada vez los cambios de modelo, se pone fuera de
sincronizacin con la base de datos.
El enfoque de la inicializacin de la base de datos de tres por encima de convertirse
en un error al agregar nuevas clases modelo y querer actualizar la base de datos
existente sin ninguna supresin o cambio. Para lograr esto, es necesario utilizar
cdigo EF First Migrations le permite mantenerse en sincronizacin con el modelo de
datos y la base de datos funciona bien hasta que implemente la aplicacin a la

produccin. Cuando la aplicacin se ejecuta y generalmente almacena los datos que


desea mantener, y no quiere perder todo cada vez que haga un cambio como agregar
una nueva columna. La caracterstica de Code First Migrations resuelve este
problema habilitando el Code First Updtae que le permite actualizar la base de datos
existente con nuevas clases de modelo cambiados y su base de datos existente sigue
siendo igual con todos los registros de su base de datos, sin necesidad de estar
ingresando nuevamente los registros.
2.1. Construccin De Un Modelo Inicial Y De Base De Datos
Antes de empezar a utilizar las migraciones necesitamos un proyecto y un Code
First Model para trabajar. Para este caso vamos a utilizar un proyecto de consola
y dos clases que son Program y Alumno
2.1.1. Crear una nueva aplicacin de consola CFMigrations.

Imagen 1: Creacin de una aplicacin en consola "CFMigrations"


Fuente: Elaboracin Propia

2.1.2. Aadir la versin ms reciente del paquete Entity Framework NuGet al


proyecto Herramientas ->Administrador de paquetes NuGet -> Consola
de Administrador de paquetes como se muestra en la imagen siguiente,
luego ingresas el comando Install-EntityFramework 6.1.3

Imagen 2: Instalacin de la versin ms reciente de EF


Fuente: Elaboracin Propia

2.1.3. Aadir un archivo Alumno.cs con el cdigo que aparece a continuacin.


Este cdigo define una sola clase Persona que conforma nuestro modelo
de dominio y una clase Alumno que es nuestro Cdigo EF Primera
contexto

Imagen 3: Creacin de la clase alumno y la clase persona


Fuente: Elaboracin Propia

2.1.4. Ahora que tenemos un modelo que es hora de utilizarlo para realizar el
acceso a datos. Actualice el archivo Program.cs con el cdigo que se
muestra a continuacin.

Imagen 4: Creacin de la clase Program.cs


Fuente: Elaboracin Propia

2.1.5.

Ejecute la aplicacin y vers que se crea una base de datos


CFCodeMigrations.Alumno para usted.

Imagen 5: Base de datos creada al ejecutar la aplicacin


Fuente: Elaboracin Propia

2.2. Habilitacin de Migraciones


2.2.1. Ejecute el comando Enable-Migrations en la consola Administrador de
paquetes

Imagen 6: Ejecutando el comando Enable-Migrations


Fuente: Elaboracin Propia

Este comando ha aadido una carpeta Migrations a nuestro proyecto, esta


nueva carpeta contiene dos archivos:
2.2.2. Enable-Migrationss ha llenado automticamente en el tipo de contexto esta
configuracin se aplica a una migracin InitialCreate. Esta migracin fue
generada porque ya tenamos Code First, cree una base de datos para
nosotros, antes de que nos capacitamos migraciones. El cdigo en esta
migracin scaffolded representa los objetos que ya se han creado en la base
de datos. En nuestro caso es que la mesa Persona con personaid y Nombre
columnas. El nombre de archivo incluye una marca de tiempo para ayudar
con el pedido.

Imagen 7: Carpeta Migrations creada despues de ejecutar el comando Enable-Migrations


Fuente: Elaboracin Propia

2.3. Generacin y Ejecucin de Migraciones


Code First Migrations tiene dos comandos principales que se van a familiarizarse
con.
2.3.1. Aadir a la migracin una nueva migracin basado en los cambios que ha
realizado en su modelo desde que se cre la ltima migracin

Imagen 8: Cambios generados en la clase Alumno


Fuente: Elaboracin Propia

2.3.2. Actualizacin de Base de datos se aplicar migraciones pendientes de la


base de datos
2.3.3. Ejecute el comando AddPersonaEdad Add-Migrations en la consola de
Administrador de paquetes
2.3.4. En la carpeta de Migraciones ahora tenemos una nueva migracin
AddPersonaEdad. El nombre del archivo de migracin est pre-fija con un
sello de tiempo para ayudar con pedidos
2.4. Actualizacion de la Base de Datos
Ahora podamos editar o aadir a esta migracin, pero todo se ve muy bien.
Usemos actualizacin Base de datos para aplicar esta migracin de la base de
datos.
2.4.1. Ejecute el comando Update-Database en la consola de Administrador de
paquetes
2.4.2. Cdigo primeras migraciones comparar las migraciones en nuestra
carpeta de Migraciones con los que se han aplicado a la base de datos. Se
ver que la migracin AddPersonaEdad debe aplicarse, y ejecutarlo.
La base de datos CFCodeMigrations.Alumno se ha actualizado para incluir
la columna de la direccin Edad en la tabla Persnonas.

Potrebbero piacerti anche