# 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**

{% code title="ClienteCategoria.cs" %}

```csharp
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; }
}
```

{% endcode %}

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

{% code title="Categoria.cs" %}

```csharp
[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; }
}
```

{% endcode %}

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

{% code title="Cliente.cs" %}

```csharp
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; }
}
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://abi.gitbook.io/net-core/6.2-configurar-tus-servicios-con-odata/6.2.2-creando-el-modelo-clientecategoria.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
