7.1.2 Creando el modelo ClienteCategoría

Vamos a agregar nuestra clase ClienteCategoria para registrar las categorías de productos que maneja cada cliente. Para que funcionen las opciones de expand de OData voy a agregar un objeto de la tabla Cliente y otro de la tabla Categoria

ClienteCategoria.cs
public class ClienteCategoria
{
        /// <summary>
        /// Id 
        /// </summary>
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        /// <summary>
        /// Id del cliente
        /// </summary>        
        public int ClienteId { get; set; }

        /// <summary>
        /// Datos del cliente
        /// </summary>
        public Cliente Cliente { get; set; }

        /// <summary>
        /// Id de la categoria
        /// </summary>
        public int CategoriaId { get; set; }
        
        /// <summary>
        /// Datos de la Categoría
        /// </summary>
        public Categoria Categoria { get; set; }
}

En nuestro modelo Categoria.cs vamos a agregar un arreglo de ClientesCategorias para que a partir de una categoría se puedan mostrar sus clientes

Categoria.cs
[Display(Name = "Categoría")]
public class Categoria
{
    /// <summary>
    /// Crea una nueva categoría <see cref="T:CaducaRest.Models.Categoria"/> class.
    /// </summary>
    public Categoria() => ClientesCategorias = new Collection<ClienteCategoria>();
    
    /// <summary>
    /// Obtiene los clientes categorías
    /// </summary>
    /// <value>Clientes categorias.</value>
    public virtual ICollection<ClienteCategoria> ClientesCategorias { get; set; }
}

Cambiamos también nuestro modelo Cliente la lista de ClientesCategorias para que se puedan realizar las consultas de OData

Cliente.cs
public class Cliente
{
    /// <summary>
    /// Constructor  <see cref="T:CaducaRest.Models.Cliente"/> class.
    /// </summary>
    public Cliente() => ClientesCategorias = new Collection<ClienteCategoria>();
    
    /// <summary>
    /// Para mostrar las categorias de los clientes
    /// </summary>
    public virtual ICollection<ClienteCategoria> ClientesCategorias { get; set; }
}

Last updated