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

Agregar Entity Framework Core a un proyecto de Blazor Server

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

Para configurar EF Core a un proyecto de Blazor Server el primer paso es agregar los paquetes Nuget necesarios. Para esto la forma mas cómoda(al menos para mí) es usando la consola del administrador de paquetes, que si no está en la parte inferior del Visual Studio la buscamos en la barra de menús en Herramientas->Administrador de Paquetes NuGet-> Consola del Administrador de paquetes

En este ejemplo usaremos una base de datos de MSSQL Server.

En la consola ponemos la siguiente instrucción:

Una ves terminado de instalar el paquete pasamos a crear nuestro modelo que para este ejemplo usaremos una clase Persona. Esta clase la crearemos dentro de una carpeta que se llamará Models en la raíz del proyecto

Creamos en la raíz del proyecto una clase de nombre ApplicationDbContext con el siguiente contenido:

Nos dirigimos al Program.cs que se encuentra en la raíz de nuestro proyecto y justo después de la línea builder.Services.AddServerSideBlazor(); escribimos:

Donde la cadena de conexión que se hace referencia(Default) la creamos en el fichero appsettings.json quedando de la siguiente forma:

Solo nos queda aplicar la migración y actualizar la base de datos con los siguientes comandos en la Consola del Administrador de paquetes.

Ya estamos listos para en cualquier clase o componente de Razor llamar a nuestro contexto para consultar nuestra base de datos