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

Aún no tienes acceso a esta clase

Crea una cuenta y continúa viendo este curso

Data annotations

17/38
Recursos

Aportes 16

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

Realmente considero que poner cosas como ProductId, ProductName, ProductDescription dentro de una clase que se llama Producto es redundante, si estoy en la clase Product y tengo la propiedad Name claramente es el Name del producto. Pero supongo que depende mas de gustos.

hasta aqui se ve ordenado el seguimiento que le va dando al proyecto junto con el avance de las clases, espero que se mantenga asi hasta el final

Me surgió una duda mientras hacía esto y viendo el diagrama que estaba en la clase de Explicación de Entity Framework noté que no había relación entre las entidades. Pero ya vi que es la clase que sigue 😅

    class StorageEntity
    {
        [Key]
        [StringLength(50)]
        public string StorageId { get; set; }
        public DateTime LastUpdate { get; set; }
        [Required]
        public int PartialQuantity { get; set; }
        [Required]
        [StringLength(10)]
        public string ProductId { get; set; }
        [Required]
        [StringLength(50)]
        public string WherehouseId { get; set; }
    }


    class WherehouseEntity
    {
        [Key]
        [StringLength(50)]
        public string WherehouseId { get; set; }
        [Required]
        [StringLength(100)]
        public string WherehouseName { get; set; }
        [Required]
        [StringLength(200)]
        public string WherehouseAddress { get; set; }
    }


    class InOutEntity
    {
        [Key]
        [StringLength(50)]
        public string InOutId { get; set; }
        [Required]
        public DateTime InOutDate { get; set; }
        [Required]
        public int Quantity { get; set; }
        [Required]
        public bool IsInput { get; set; }
        [Required]
        [StringLength(50)]
        public string StorageId { get; set; }
    }

Excelente

Recomiendo para las fechas agregar datatype
[Required] [DataType(DataType.Date)] public DateTime InOutDate { get; set; }

Colocar un Id como string es la primera vez que veo algo así, si quiero que sea identity para que tenga autoincremento aun así funcionaria?? También coincido con el otro alumno, si tengo una tabla llamada Product, y la columna date por ejemplo, Date seria el nombre y Product el Apellido y es redundante llamarla ProductDate, en mi humilde opinión y experiencia en .net

Al hacer uso del Code First, entiendo que creará en mi base de datos las tablas (columnas / keys / relaciones). Posteriormente, si hago una modificación solo en mi base de datos y no en las entidades de Visual Studio. ¿Las entidades en Visual Studio se actualizarán?

Mi solución.

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace Entities
{
    class StorageEntity
    {
        [Key]
        [StringLength(10)]
        public string StorageId { get; set; }
        public DateTime LastUpdate { get; set; }
        public int PartialQuantity { get; set; }
        [Required]
        public string ProductId { get; set; }
        [Required]
        public string WarehouseId { get; set; }

    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace Entities
{
    class WarehouseEntity
    {
        [Key]
        public string WarehouseId { get; set; }
        [Required]
        [StringLength(50)]
        public string WarehouseName { get; set; }
        [MinLength(10)]
        public string WarehouseAddress { get; set; }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

namespace Entities
{
    class InOutsEntity
    {
        [Key]
        [StringLength(50)]
        public string InOutsId { get; set; }
        [Required]
        public DateTime InOutDate { get; set; }
        public int Quantity { get; set; }
        public bool IsInput { get; set; }
        [Required]
        public string StorageId { get; set; }
    }
}


Estas entidades se crean solo cuando aun no esta creada la base de datos? Si ya existe una base de datos creada con sus columnas, relaciones y todo, igual se deben crear estas entidades?

Algo que siento que falta en todo el curso es referencias a la documentación oficial, por ello relaciono algunos enlaces que pueden ser de interés:

class InOuts
    {
        [Key]
        [StringLength(10)]
        public string InOutId { get; set; }
        [Required]
        [StringLength(100)]
        public string InOutDate { get; set; }
        public int Quantity { get; set; }
        public bool IsInput { get; set; }
    }
public class WherehouseEntity
    {
        [Key]
        [StringLength(10)]
        public string WherehouseId { get; set; }
        [Required]
        [StringLength(100)]
        public string WherehouseName { get; set; }
        [Required]
        [StringLength(100)]
        public string WherehouseAddress { get; set; }
    }
public class StorageEntity
    {

        [Key]
        [StringLength(10)]
        public string StorageId { get; set; }
        [StringLength(30)]
        public string LastUpdate { get; set; }
        public int PartialQuantity { get; set; }
    }
public class WarehouseEntity
    {
        [Key]
        public int WarehouseId { get; set; }
        [StringLength(100)]
        public string WarehouseName { get; set; }
        [StringLength(150)]
        public string WarehouseAddress { get; set; }
    }


public class StoragesEntity
    {
        [Key]
        public int StoragesId { get; set; }
        [Required]
        public DateTime LastUpdate { get; set; }
        public int PartialQuantity { get; set; }    
        public int ProductId { get; set; }
        public int WarehouseId { get; set; }
    }


public class InOutEntity
    {
        [Key]
        public int InOutId { get; set; }
        [Required]
        public Datetime InOutDate { get; set; }
        public int Quantity { get; set; }
        public bool IsInPut { get; set; }
        public int StoragesId { get; set; }
    }

Para ser clase de Data Annotations es infinitamente básica, deberia haber una clase en algún curso .NET que profundice más

Reto

![](
![](
![](

Mi aporte del reto:

public class WarehouseEntity
{
    [Key]
    public int WarehouseId { get; set; }

    [Required]
    [StringLength(50)]
    public string WarehouseCode { get; set; }

    [Required]
    [StringLength(100)]
    public string WarehouseName { get; set; }

    [Required]
    [StringLength(100)]
    public string WarehouseAddress { get; set; }
}

public class StorageEntity
{
    [Key]
    public int StorageId { get; set; }

    [Required]
    [StringLength(50)]
    public string StorageCode { get; set; }

    [Required]
    public DateTime StorageLastUpdate { get; set; }

    [Required]
    public decimal StoragePartialQuantity { get; set; }

    [Required]
    public int ProductId { get; set; }

    [Required]
    public int WarehouseId { get; set; }
}

public class InOutEntity
{
    [Key]
    public int InOutId { get; set; }

    [Required]
    [StringLength(50)]
    public string InOutCode { get; set; }

    [Required]
    public DateTime InOutDate { get; set; }

    [Required]
    public decimal InOutQuantity { get; set; }

    [Required]
    public bool InOutIsInput { get; set; }

    [Required]
    public int StorageId { get; set; }
}