¿Cómo construir una base de datos desde el código?
Crear una base de datos directamente desde el código es un paso esencial para desarrolladores. Ya hemos definido las entidades y sus relaciones; ahora, vamos a repasar cómo se construyen estas relaciones.
En primer lugar, tenemos las categorías y su relación con los productos y el almacenamiento. Las bodegas también se relacionan con el almacenamiento, al igual que las entradas y salidas que sólo se vinculan con esta última parte. Tras este análisis, estamos listos para desarrollar una capa de acceso a datos.
¿Cómo se agrega un nuevo proyecto para el acceso a datos?
Para construir la capa de acceso a datos, agregaremos un nuevo proyecto a nuestra solución. Este proyecto se nombrará como DataAccess, construyéndolo como una librería de clases. Dicho proyecto se encargará de manejar la conexión y manipulación de datos utilizando Entity Framework.
publicclassInventoryContext:DbContext{publicDbSet<Product> Products {get;set;}publicDbSet<Category> Categories {get;set;}publicDbSet<Warehouse> Warehouses {get;set;}publicDbSet<Storage> Storages {get;set;}// Agregar demás DbSets según las entidades necesarias}
¿Qué necesitamos para trabajar con Entity Framework?
Para utilizar Entity Framework, es necesario instalar las librerías correspondientes. Esto se realiza desde el manejador de paquetes NuGet en Visual Studio:
Hacer clic derecho sobre el proyecto en el explorador de soluciones.
Seleccionar "Administrar paquetes NuGet".
Instalar Microsoft.EntityFrameworkCore y otras librerías necesarias para el manejo de datos.
¿Cómo se definen las tablas en el contexto de datos?
Después de configurar Entity Framework, se procede a definir cómo se llamará cada tabla en la base de datos. Esto se realiza mediante DbSet en el contexto de datos:
Es importante realizar las referencias adecuadas entre las capas del proyecto para garantizar la integración correcta de las entidades.
¿Qué términos claves destacan en esta implementación?
Entity Framework: Es el framework utilizado para gestionar las operaciones de datos en .NET.
DbContext: Clase base para los contextos de datos en Entity Framework.
DbSet: Representa una tabla en la base de datos.
NuGet: Manejador de paquetes para .NET.
Librerías: Conjunto de funcionalidades externas que se pueden agregar a un proyecto.
Recomendamos repetir estos procesos hasta familiarizarte con las configuraciones, para solidificar el aprendizaje y el entendimiento del proceso de implementación.
Con este curso he aprendido los conceptos de entity framework y db context, ya que en el curso anterior de ASP .NET CORE, se utilizaron los modelos del curso c# .net core y la explicación muy por encima, y no me había quedado muy claro.
esta explicacion fue lo maximo, ahora si entiendo como es el trabajo con EF DbContext.
Estoy de acuerdo bro!
Muy buena clase! en el curso de ASP y Net Core vemos muy superficial en Entity Framework y esto me ayudó a comprender mejor como implementarlo.
El **DbContext **es una clase esencial a la hora de utilizar Entity Framework, a través de ella configuramos qué motor de base de datos es el que vamos a utilizar, es con el db context que vamos a poder indicar cuales modelos se van a utilizar para construir nuestra base de datos, y es con esta misma clase que podremos hacer queries hacia nuestra base de datos.
Comparto configuración de ejemplo de InventoryContext con FluentApi (me gusta mucho esta configuración):
Si estan utilizando VSC con el Dotnet CLI, para crear la referencia de paquetes entre un proyecto y otro (nuestras librerias de clases) se usa el siguiente comando
Esto lo ejecutamos desde la carpeta de nuestra solucion que contiene todos nuestro proyectos.
NOTA IMPORTANTE
La referencia se realiza del segundo al primer proyecto
(1 <- 2)
Obviamente las explicaciones más claras y completas son las del curso completo de Entity Framework, pero no se quita el merito que muy bien explicado, porque en el curso de ASP .net si dejó mucho que desear en esta parte.
Para los que tengan un error similar a este:
NU1202:PackageMicrosoft.EntityFrameworkCore6.0.3 is not compatible with netcoreapp3.1(.NETCoreApp,Version=v3.1).PackageMicrosoft.EntityFrameworkCore6.0.3supports: net6.0(.NETCoreApp,Version=v6.0)Package restore failed.Rolling back package changes for'DataAccess'.
Les recomiendo instalar la versión 3.1.1 de Microsoft.EntityFrameworkCore que es el mismo utilizado en el curso.
Me salia este error instalando el paquete de NuGet EntityFramework
(Excepción de HRESULT: 0x80020009 (DISP_E_EXCEPTION))
Lo solucione con los siguientes pasos en el IDE VS2019:
Ingresar al:
-> Tools o Herramientas
-> Import and Export Settings... o Importar o exportar configuraciones
-> Select 'Reset all settings' radio button o Restablecer todas las configuraciones
-> Next o Siguiente
-> Select 'No, just reset settings, overwriting my current settings' radio button if you want to reset VS to a fresh install settings Español:No, SImplemente restablecer la configuracion reemplazando mi configuracion actual
-> Choose 'General' or setting you want to restore to.
-> Finish
Si uso una librería que aun no tiene using ...., no me genera error, y cuando pongo el using correspondiente me aparecen opacas las palabras, no me aparece en el tono resaltado como en el ejercicio. Que habré hecho mal?
Es porque aún no está en uso dentro de tu clase. Sólo la estás digamos "importando" para su uso pero aún no la usas.
excelente explicación profe, hasta da los tips... para q no se olvide el código para los que somos nuevos..
Excelente
yo si lo habia escrito bien B)
Al crear un proyecto class library, este tiene como target netcoreapp 3.1 y la solución Inventory tiene target net 5.0. ¿Puede suceder algún tipo de error en la aplicación?