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.cspublic 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.cspublic 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; }}