Vamos a crear un CRUD con EntityFramweork y Linq en ASP.Net Core MVC, la base de datos que voy a utilizar es un SQL Server.

Para empezar voy a enseñar las tablas que voy a utilizar:

Tabla Producto:

Tabla Fabricante:

Como crear el proyecto

Bien, vamos a crear ahora nuestro proyecto en Visual Studio 2019 (En mi caso), y vamos a seleccionar ASP.NET Core Web App (Model-View-Controller)

Cuando se termine de crear el proyecto procederemos a añadir los NuGet que vamos a utilizar que son los siguientes es muy importante que los NuGet sean de la versiones 5.0 ya que es la versión de Net Framework que vamos a utilizar:

Después de instalar los NuGet vamos a Mapear las tablas que vamos a utilizar, en la carpeta Models vamos a crear en mi caso 2 clases que son las tablas que vamos a utilizar.

Es importante importar las librerías de System.ComponentModel.DataAnnotations y System.ComponentModel.DataAnnotations.Schema

Después de Mapear las tablas de nuestra base de datos vamos a crear una carpeta en el proyecto llamada Data y crear una clase que en mi caso voy a llamar TiendaContext.cs y haremos que herede de DbContext y procedemos a importar la librería de EntityFramworkCore

Después de crear la clase de TiendaContext vamos a crear una nueva carpeta llamada Repositories y una clase llamada RepositoryTienda que es la clase donde vamos a utilizar todas las consultas linq a la base de datos.

Añadiremos el contexto a esta clase a través de inyección de dependencias

Después de crear la clase vamos a crear las conexiones a la base de datos, necesitamos la cadena de conexión a la base de datos y la vamos a añadir a appsetting.json:

Ahora vamos a resolver las inyecciones de dependencias en startup.cs, añadiremos estas 3 líneas:

Cuando ya hemos terminado de añadir las líneas ahora empezaremos creando un nuevo controller en mi caso lo voy a llamar TiendaController y añadimos el Repository en el constructor

CONSULTAS DE SELECCION CON LINQ

Y creamos un nuevo IActionResult donde vamos a cargar la lista de fabricantes de la base de datos

Como vemos utilizamos el método GetFabricantes del repository en el que usamos la consulta linq para obtener todos los fabricantes

En mi caso voy a crear la vista de ListadoFabricantes con scaffolding, hago unas pequeñas modificaciones y añado un botón para cargar los artículos de cada fabricante.

Ahora creamos otro IActionResult en el controller que cargue el listado de artículos por fabricante:

Creamos la consulta linq para cargar los productos por fabricante:

Creamos la vista con scaffolding para ver los productos:

Añadir registros con Linq

Para crear un nuevo producto utilizamos una nueva vista con un formulario donde vamos a añadir los datos:

Desde el controller Creamos los dos IActionResult con una vista para ver y otra para guardar los datos con el método HttpPost:

El código para añadir un nueva linea en la base de datos es fácil con Linq, creamos un nuevo producto y lo guardamos en el context de productos.

Eliminar datos con Linq

Creamos la vista de EliminarProducto con un form que mandará el id del producto a eliminar:

El código del repository es sencillo, recuperamos el objeto producto con un método en el repo y lo eliminamos del dbset:

Editar un producto

Para editar los productos necesitaremos su id y recuperaremos el objeto con el método anterior de FindProducto

Simplemente cogemos el producto y cambiamos su nombre y precio que son los únicos datos que podemos cambiar.

Autor/a: Agustin Campos Martinez

Curso: Desarrollo Web Full Stack, MultiCloud y Multiplataforma 

Centro: Tajamar 

Año académico: 2021-2022 

Código / recursos utilizados / Otros datos de interés: https://github.com/AgusCM4/ProyectoPostNetCoreAgustinCampos.git

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.