> For the complete documentation index, see [llms.txt](https://abi.gitbook.io/net-core/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://abi.gitbook.io/net-core/6.2-configurar-tus-servicios-con-odata/6.2.5-configurar-el-servicio-odata.md).

# 7.1.5 Configurar el servicio OData y llaves foráneas

En nuestra misma clase **startup** en el método **ConfigureServices** agregamos los servicios **OData**

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

```csharp
public void ConfigureServices(IServiceCollection services)
{
    services.AddOData();
```

{% endcode %}

Creamos nuestras llaves foráneas e índices

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

```csharp
public class ClienteCategoriaConfiguration 
                : IEntityTypeConfiguration<ClientesCategorias>
{
    /// <summary>
    /// LLaves e índices para guardar las categorías por cliente
    /// </summary>
    /// <param name="builder"></param>
    public void Configure(EntityTypeBuilder<ClientesCategorias> builder)
    {
        builder.HasOne(c => c.Categoria)
                    .WithMany(cc=>cc.ClienteCategoria)
                    .OnDelete(DeleteBehavior.Restrict);

         builder.HasOne(e => e.Cliente)
                .WithMany(c => c.ClienteCategoria)
                .OnDelete(DeleteBehavior.Restrict);

         builder.HasIndex(e => new { e.ClienteId, e.CategoriaId })
               .HasName("UI_ClienteCategoria")
               .IsUnique();
     }
}
```

{% endcode %}
