Model First.
Creando mi primer modelo (Model First); ¿comencemos pensando en las clases?. El model first es la capacidad que tiene el visual estudio de permitir el diseño de las clases que se ocuparan en la lógica de negocios y a partir de ellas crear mi diagrama de base de datos.
En otras palabras no crearemos tablas sino que el Entity se encargara de generarnos las tablas de la base de datos que creemos.
Crearemos un proyecto nuevo, de tipo biblioteca de clases lo llamaremos ModelFirst:
Agregaremos un nuevo elemento:
Y ocuparemos este elemento:
Nos aparecerá esta ventana de dialogo y con este asistente haremos nuestro primer modelo; escogeremos el modelo vacío recordemos que estamos pensando en clases y no en tablas:
Nos aparcera la siguiente ventana donde podremos diseñar nuestro modelo que ocuparemos para crear nuestras tablas que nos servirán en la base de datos:
Como se puede ver nos carga las referencias que necesitamos y en el cuadro de herramientas aparecen los elementos interactuar con nuestras clases. Primero tendremos que hacer una base de datos donde guardar nuestras clases, que se convertirán en tablas de la base de datos. Esta no contendrá nada:
Como se puede ver no contiene ninguna tabla sino que nuestras clases se convertirán en ellas:
Imaginemos que tenemos que llevar el control de los profesores de una escuela asignándoles las alúas donde impartirán sus clases; tendremos que crear dos clases una donde estarán los datos del profesor y otra donde estarna los datos del aula. comencemos creado la clase de profesor, haciendo clic derecho:
crearemos una entidad nueva usando este asistente:
El nombre de la entidad será profesor, su conjunto de entidades será profesor este me servirá para saber las propiedades de navegación, por defecto me dejara en el nombre de la propiedad el Id de la misma clase y por ultimo solo hay que decirle que de tipo Int64.
Para agregar otra propiedad solo damos clic derecho sobre la clase profesor:
Y así todas las propiedades que tenga esta clase:
Para aula aremos exactamente lo mismo, y nos quedara así.
Ya creadas nuestras clase solo queda asignar la relación entre ambas clases para ello en la caja de herramientas de EF aparece la herramienta para hacer esto:
Para generar la relación entre las dos tablas solo hay que hacer esto:
Hacemos clic en la tabla profesor lo arrastramos y soltamos en aula:
Como se ve en esta conversión a objeto relacional, no aparecen las llaves foráneas en cada objeto; por que esa parte del mapeo lo debe hacer el ORM. Ya creados nuestras clases solo falta hacer o crear nuestras tablas en la base de datos para eso hacemos clic derecho sobre cualquier área en blanco del modelo.
Seleccionamos la opción “generar base de datos desde modelo”, nos aparecerá esta ventana.
Tendremos que crear una conexión a la base de datos que creamos anteriormente.
En este punto si le damos finalizar nos creara un script para crear nuestras tablas a partir del modelo:
Copiamos y creamos una consulta en nuestra base de datos para pegar esto:
Si corremos esta consulta nos creara nuestras tablas en la base de datos.
Si vemos el diagrama de clases, nos aparecería esto:
Como podemos ver en el diagrama de base de datos si se generaron las llaves foráneas de forma automática. Esto se da por que cuando se pasa de lo relacional a los objetos en nuestra base de datos se conoce la equivalencia de ambos.
La solución queda de esta forma en el visual estudio:
Database-first
Como hemos visto podemos crear las clases y luego las tablas a partir de ellas pero que pasa si queremos hacerlo al revés, tenemos nuestra base de datos y las tablas ya echas.
Imaginemos que queremos crear nuestro modelo a partir de una base de datos. Crearemos un proyecto nuevo y como ya tenemos una base de datos que creamos anteriormente esa es la que ocuparemos. Lo llamaremos Databasefirst:
Agregaremos un nuevo elemento.
De este tipo:
Hasta aquí es igual al que hicimos anteriormente solo que escogeremos la primera opción esto nos abrirá la siguiente ventana de dialogo.
Como ya habíamos echo una conexión a esta base de datos nos tiene que aparecer la conexión sino tendríamos que hacerla de nuevo.
Damos siguiente y nos aparecería esto:
Seleccionamos las tablas y quitamos el cheque de “Incluir columnas de clave externa en el modelo”, esto evitara que se incluyan las llaves foráneas de la base de datos.
Le damos finalizar y nos creara el modelo a partir de una base de datos ya existente. que daría así:
Como podemos ver son dos formas de comenzar a trabajar con el Data Entity Framework.
Espero que te sirva de algo…