4.2 Crear la tabla Categoría y sus validaciones
Con la base de datos creada vamos a crear nuestro primer modelo. Por convención todas las clases de las tablas estarán dentro de la carpeta Models.
Entity Framework incluye validaciones predefinidas que puedes utilizar, las mas comunes son:
Validaciones
Validación | Descripción |
---|---|
[Required] | El campo es obligatorio |
[StringLength(30)] | El campo tiene máximo 30 caracteres |
[Range(0,999.99)] | El campo acepta valores de 0 a 999.99. El campo debe ser de tipo decimal |
[Compare("Password")] | El valor del campo debe ser igual al valor del campo Password. |
[RegularExpression(@"^[SMAsma][0-9]{4}$" | Permite especificar una expresión a validar. En este caso la expresión regular indica que el campo debe empezar con cualquiera de las siguientes letras SMAsma y debe seguir de 4 números. Ejemplo S1801. Este campo podría indicar que es la semana 1 del año 2018 |
[Url] | El campo debe tener formato de URL |
[Phone] | El campo debe ser un número de teléfono |
[EmailAddress] | El campo debe tener formato de correo electrónico |
[CreditCard] | El campo debe tener formato de tarjeta de crédito |
Adicionalmente puedes crear validaciones personalizadas. Por ejemplo puedes agregar una validación que revise si una venta esta cancelada, se deben capturar los motivos de cancelación.
Primero vamos a crear la tabla en este caso crearemos la tabla Categoría.
Crear el modelo
En el proyecto de Visual Studio agregamos una nueva carpeta llamada Models
Dentro de la carpeta Models agregamos una nueva clase llamada Categoria.cs
Tecleamos los nombres de los campos como propiedades públicas
Categoria.csAgregamos las validaciones de cada campo
- Categoria.cs
5. Para MySql debemos agregar el tipo de dato para los campos varchar o text e indicar que el campo Id es identity.
Crear el DBContext
.NET cuenta con la clase DBContext que te permite interactuar con la base de datos. Todas las tablas que necesites en tu base de datos se irán agregando a esta clase.
Dentro de la carpeta Models agrega una nueva clase llamada CaducaContext que herede de la clase DBContext. Puedes presionar la tecla Control y el . (punto) para agregar automáticamente el import.
Agregamos el constructor el cual recibe como parámetro un DBContextOptions el cual indicará las opciones de la base de datos a utilizar.
CaducaContext.csAgregamos la tabla como virtual DbSet
CaducaContext.csAgregamos la cadena de conexión en el archivo appsetings. En este caso agregamos el usuario administrador.
5. En el archivo startup.cs configuramos que nuestra clase CadudaContext utilizará una base de datos MySQL y la cadena de conexión de nuestro archivo appsetings. Esto lo agregamos en el método ConfigureServices en este método estaremos configurando los servicios de nuestros servicios REST.
Crear la Migración Inicial y actualizar la base de datos
Comandos para las migraciones
Para actualizar tu base de datos necesitamos ejecutar una serie de comandos. Se tienen 2 conjuntos de comandos desde el administrador de Paquetes que esta en visual Studio Comunity o desde la consola si estas en mac.
Los comandos para las migraciones desde Visual Studio Comunity son:
Comando | Descripción |
Add-Migration nombre | Permite agregar una migración. Esta migración contiene todos los cambios realizados a los modelos de la base de datos. |
Remove-Migration | En caso de encontrar algún error en la migración creado, lo podemos borrar con este comando. Solamente puedes revertir la última migración no aplicada |
Update-Database | Permite actualizar la base de datos |
Update-Database nombre | Permite actualizar la base de datos a la migración con el nombre de la migración pasado como parámetro |
Script-Migration | Permite generar el script para crear y/o actualizar la base de datos |
Puedes ver la documentación oficial para las migraciones aqui.
Creando la primer migración desde Visual Studio Comunity
Vamos a crear nuestra primer migración.
Abrimos la consola del Administrador de Paquetes. Desde Visual Studio damos clic en Herramientas -> Administrador de Paquetes Nuget -> Consola del Administrador de Paquetes
Ejecutamos el comando Add-Migration CreacionInicial. Esta instrucción nos creará una carpeta Migrations la cual contiene el código para crear la tabla categoría. Revisamos el archivo para ver que todo este correcto.
Ejecutamos el comando Update-Database para crear la tabla. Si consultas tu base de datos de MySQL adicional a la tabla Categoría se crea la tabla __efmigrationshistory la cual guarda el registro de las migraciones aplicadas a la base de datos
Generar las clases de una base de datos existente
Si ya cuentas con tu base de datos, puedes utilizar el comando en la Consola del Administrador de Paquetes. Para esto crea un nuevo proyecto y agrega los paquetes del capítulo 2.3 Paquetes Nuget
La base de datos de la cual vamos a generar las clases es sakila la cual es una base de datos de ejemplo de mysql
Puedes descargar el script de la base de datos sakila aqui. Recuerda crear un usuario administrador para conectarte a la base de datos Sakila.
El comando para generar las clases es:
Last updated