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.
Conocer las bases de .NET core
¿Qué necesitas para aprender a desarrollar aplicaciones profesionales en .NET con Blazor?
Todo lo que aprenderás sobre Blazor
Evolución de .Net
¿Cómo funciona el Desarrollo Web sin Blazor?
Instalando Visual Studio Community
Instalando SQL Server Express
Entender la estructura de Blazor
Webassemblies y .Net Core 3
Anatomía de una aplicación Blazor
Blazor pages
Blazor components
Introducción a formularios
Inyección de dependencias
Aplicar Entity Framework
Arquitectura vs. Patrones de Diseño
Estructurando nuestro proyecto
¿En qué consiste Entity Framework y por qué vamos a trabajarlo?
Creación de entidades
Data annotations
Trabajando el relacionamiento entre entidades
Creando el datacontext
Migraciones
Alimentando la base de datos
Integrar datos en ambientes Blazor
Construyendo la capa intermedia o capa de negocio
El CRUD de integración de datos
Creación de formularios con Blazor
Finalizando el formulario
Trabajando listas de datos
Agregando filtros a nuestra lista
Guardando nuevos registros
Creación formulario de actualización de datos
Aplicando actualización de datos
Registrando productos en almacenamiento
Creando página de almacenamiento
Cargando productos por Bodega para entradas y salidas
Relacionando productos y formulario de entradas y salidas
Finalizando el formulario de entradas y salidas
Aplicar Diseño con Bootstrap
Revisión de estilos: Introducción a Bootstrap
Publicando el sitio
Cierre del curso
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Miguel A. Quintero
Aportes 14
Preguntas 2
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.
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):
public class InventoryContext : DbContext
{
public DbSet<CategoryEntity> Categories { get; set; }
public DbSet<ProductEntity> Products { get; set; }
public DbSet<WarehouseEntity> Warehouses { get; set; }
public DbSet<StorageEntity> Storages { get; set; }
public DbSet<InputOutputEntity> InOuts { get; set; }
public InventoryContext(DbContextOptions<InventoryContext> options) : base(options) { }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<CategoryEntity>(category => {
category.ToTable("Categories");
category.HasKey(p => p.CategoryId);
category.Property(p => p.CategoryName).IsRequired().HasMaxLength(100);
});
modelBuilder.Entity<ProductEntity>(product => {
product.ToTable("Products");
product.HasKey(p => p.ProductId);
product.HasOne(p => p.Category).WithMany(p => p.Products).HasForeignKey(p => p.CategoryId);
product.Property(p => p.ProductName).IsRequired().HasMaxLength(100);
product.Property(p => p.ProductDescription).IsRequired(false).HasMaxLength(600);
product.Property(p => p.TotalQuantity).IsRequired().HasMaxLength(10);
});
modelBuilder.Entity<WarehouseEntity>(warehouse => {
warehouse.ToTable("Warehouses");
warehouse.HasKey(p => p.WarehouseId);
warehouse.Property(p => p.WarehouseName).IsRequired().HasMaxLength(100);
warehouse.Property(p => p.WarehouseAddress).IsRequired().HasMaxLength(300);
});
modelBuilder.Entity<StorageEntity>(storage => {
storage.ToTable("Storages");
storage.HasKey(p => p.StorageId);
storage.HasOne(p => p.Product).WithMany(p => p.Storages).HasForeignKey(p => p.ProductId);
storage.HasOne(p => p.Warehouse).WithMany(p => p.Storages).HasForeignKey(p => p.WarehouseId);
storage.Property(p => p.LastUpdate).IsRequired();
storage.Property(p => p.PartialQuantity).IsRequired();
});
modelBuilder.Entity<InputOutputEntity>(inOut => {
inOut.ToTable("InputsOuputs");
inOut.HasKey(p => p.InOutId);
inOut.HasOne(p => p.Storage).WithMany(p => p.InputOutputs).HasForeignKey(p => p.StorageId);
inOut.Property(p => p.InOutDate).IsRequired();
inOut.Property(p => p.Quantity).IsRequired();
inOut.Property(p => p.IsInput).IsRequired();
});
}
}
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
dotnet add Proyecto1/Proyecto1.csproj reference Proyecto2/Proyecto2.csproj
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: Package Microsoft.EntityFrameworkCore 6.0.3 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1). Package Microsoft.EntityFrameworkCore 6.0.3 supports: 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
Buena clase!
using Inventary.Entities;
using Microsoft.EntityFrameworkCore;
namespace Inventary.DataAccess
{
public class InventaryContext : DbContext
{
public DbSet<ProductEntity> Products { get; set; }
public DbSet<CategoryEntity> Category { get; set; }
public DbSet<InOutEntity> InOut { get; set; }
public DbSet<StorageEntity> Storage { get; set; }
public DbSet<WarehouseEntity> Warehouse { get; set; }
}
}
Excelente
yo si lo habia escrito bien B)
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?