Comandos migraciones

https://www.entityframeworktutorial.net/efcore/pmc-commands-for-ef-core-migration.aspx

https://docs.microsoft.com/es-es/ef/core/cli/powershell

Get-Help entityframework Displays information about entity framework commands.
Add-Migration <migration name> Creates a migration by adding a migration snapshot.
Remove-Migration Removes the last migration snapshot.
Update-Database Updates the database schema based on the last migration snapshot.
Script-Migration Generates a SQL script using all the migration snapshots.
Scaffold-DbContext Generates a DbContext and entity type classes for a specified database. This is called reverse engineering.
Get-DbContext Gets information about a DbContext type.
Drop-Database Drops the database.

Ejercicio Colección de cómics

Vamos a crear una aplicación para hacer un catálogo de una colección de comics. Las entidades son las siguientes:

Categorias: Nombre y descripción
Autores: Nombre, nacionalidad y año de nacimiento
Comics: Título, descripción, fecha y número de páginas

Una categoría puede tener varios cómics pero un cómic sólo pertenece a una categoría
Un autor lo puede ser de varios comics y viceversa. Los autores pueden tener diferentes roles para cada cómic (guionista, dibujante, entintador,…)

Tenemos que hacer:

1) Modelo ER.
2) Crear una aplicación de consola que implemente (Code First) este modelo.
3) En esa misma aplicación poder hacer un mantenimiento CRUD de las tres tablas. Incluyendo asignar autores a comics. Las asignaciones se harán por el id.

Ejemplo. El programa nos mostrará lo siguiente:

1) Añadir categoría
2) Ver categorías
3) Modificar categoría
4) Borrar categoría

Si pulsamos 1:

Introduzca el nombre de la categoría:
Introduzca la descripción:
Categoría creada con id:

Si pulsamos el 2:

Id Nombre Descripción
1 Manga Comic japonés
2 Novela gráfica

Si ponemos el 3:

Introduzca el id a modificar:
Introduzca nuevo nombre (intro para no modificar):
Introduzca nueva descripción (intro para no modificar):

Si ponemos el 4:

introduzca el id a eliminar:
Borrará la categoría XXX ¿Está seguro?

4) Modificar las asignaciones para incluir también búsqueda por nombre.
5) Crear una opción de estadísticas que nos permita ver:
a) El número de cómics por categoría
b) el número de cómics por autor
c) Los 5 cómics con mayor número de páginas.
d) el número de autores por nacionalidad.

 

Añadir la entidad Editorial

Tiene las propiedades nombre y país

Un comic es de una editorial y una editorial puede tener varios comics.

Añadir el CRUD de la editorial y los cambios que sean necesarios en comic para tener en cuenta la editorial.

Anotaciones

En nuestra entidad profesor vamos a poner el nombre requerido, con una longitud mínima de 5 y máxima de 150.

Vamos a añadir un campo en curso Horas que son los créditos * 5 y no lo vamos a mapear con la base de datos

Vamos a añadir una entidad ‘Tarjeta’ con los campos IdTarjeta y Codigo (String) el codigo tiene un tamaño entre 10 y 20 y es requerido.

DBFirst

install-package Microsoft.EntityFrameworkCore
install-package Microsoft.EntityFrameworkCore.SqlServer
install-package Microsoft.EntityFrameworkCore.tools

Scaffold-DbContext “Server=.\SQLExpress;Database=pasiona;Trusted_Connection=True;” Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models