Conocer las bases de .NET core

1

¿Qué necesitas para aprender a desarrollar aplicaciones profesionales en .NET con Blazor?

2

Todo lo que aprenderás sobre Blazor

3

Evolución de .Net

4

¿Cómo funciona el Desarrollo Web sin Blazor?

5

Instalando Visual Studio Community

6

Instalando SQL Server Express

Entender la estructura de Blazor

7

Webassemblies y .Net Core 3

8

Anatomía de una aplicación Blazor

9

Blazor pages

10

Blazor components

11

Introducción a formularios

12

Inyección de dependencias

Aplicar Entity Framework

13

Arquitectura vs. Patrones de Diseño

14

Estructurando nuestro proyecto

15

¿En qué consiste Entity Framework y por qué vamos a trabajarlo?

16

Creación de entidades

17

Data annotations

18

Trabajando el relacionamiento entre entidades

19

Creando el datacontext

20

Migraciones

21

Alimentando la base de datos

Integrar datos en ambientes Blazor

22

Construyendo la capa intermedia o capa de negocio

23

El CRUD de integración de datos

24

Creación de formularios con Blazor

25

Finalizando el formulario

26

Trabajando listas de datos

27

Agregando filtros a nuestra lista

28

Guardando nuevos registros

29

Creación formulario de actualización de datos

30

Aplicando actualización de datos

31

Registrando productos en almacenamiento

32

Creando página de almacenamiento

33

Cargando productos por Bodega para entradas y salidas

34

Relacionando productos y formulario de entradas y salidas

35

Finalizando el formulario de entradas y salidas

Aplicar Diseño con Bootstrap

36

Revisión de estilos: Introducción a Bootstrap

37

Publicando el sitio

38

Cierre del curso

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Creando el datacontext

19/38
Recursos

Aportes 14

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

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 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)