Operaciones con la base de datos.

ANTES DE LEER EL ARTÍCULO, POR FAVOR, LEA AQUÍ

Comenzamos

Para este articulo vamos a crear en una aplicación Blazor Server, un modelo que le llamaremos Persona con algunas propiedades, vamos a crear la migración correspondiente para actualizar nuestra base de datos y crearemos el servicio para hacer un CRUD de esa tabla.

Continuaremos donde nos quedamos en el articulo:

https://coderepo.yhd.cu/kb/agregar-entity-framework-core-a-un-proyecto-de-blazor-server/

Preparando el Modelo

En ese artículo nos quedo pendiente crear las reglas de validación que además de usarlas en las vistas para validar los datos, también son importantes para definir las características de las columnas en la base de datos; ejemplo: si una columna es nuleable o no, la longitud de los datos, etc.

Para definir reglas de validación de los datos de Persona usamos DataAnnotations.

En qué consiste DataAnnotations?

Básicamente, DataAnnotations nos permite llevar a cabo validaciones de datos de acuerdo a nuestras necesidades. Esas necesidades son decoraciones que indicaremos a los miembros de nuestras entidades. Una decoración corresponderá a una validación.

En este caso vamos a definir el nombre de la tabla, marcar como requerido todos los campos, especificaremos cual será la llave primaria de nuestra tabla(aunque EF Core asume como llave primaria si la propiedad se llama Id o NombreTablaId o similares)y definiremos la longitud de nuestro campo CI. Además de poner mensajes personalizados para los errores en caso de no cumplirse la validación. La clase Persona nos quedaría de la siguiente forma:

Actualizando el contexto y aplicando la migración

Necesitamos, para poder insertar la tabla en la base de datos agregar la propiedad DbSet en la clase ApplicationDbContext. Para esto agregamos la siguiente línea:

Una ves terminado en la Consola del Administrador de paquetes agregamos nuestra migración con el comando

ViewModel y su Interface

Una vez creada la tabla en la base de datos procedemos a crear el servicio que realizará todas las operaciones de CRUD. Creamos en la raíz del proyecto una carpeta con el nombre MVVM. Dentro de la misma a mi me gusta crear dos carpetas, una de nombre ViewModels y la otra de nombra Intefaces,

Dentro de la carpeta Interfaces crearemos una interfaz con el siguiente contenido:

Esta será nuestra interfaz para la clase PersonaViewModel que la crearemos dentro de la carpeta ViewModels e implementará todos los métodos que declaramos en la interface.

Modificando Program.cs

Terminado el ViewModel con todas las operaciones que necesitamos, solo nos queda configurarlo para que pueda ser injectado como dependencia en cualquier vista. Vamos al fichero Program.cs, que se encuentra en la raiz de nuestor proyecto y justo debajo de la línea builder.Services.AddServerSideBlazor(); agregamos:

Conclusiones

En este pequeño ejemplo, mostramos como realiza la clase que nos servirá para ejecutar todas las acciones que necesitemos desde la vista hasta la base de datos. En otros artículos explicaremos como usar este ViewModel en una vista usando DevExpress