Quando abbiamo una relazione molti a molti, all'interno del database creiamo una tabella che mette in relazione le due tabelle da relazionare. In un modello a oggetti questa una classe relativa alla tabella di relazione non esiste, poiché le classi puntano direttamente l'una all'altra.
Un esempio di relazione molti a molti è quella tra agenti e regioni: un agente può coprire più regioni ed una regione può essere coperta da più agenti.
Nel database abbiamo una tabella Agente, una tabella Regione e una tabella AgenteRegione. Nel modello a oggetti abbiamo una classe Agente con una proprietà Regioni, che indica le regioni coperte dall'agente, ed una classe Regione con una proprietà Agenti, che indica gli agenti che coprono la regione.
Per mappare questa relazione con Entity Framework Code-First basta aggiungere la seguente riga di codice nel metodo OnModelCreating del contesto.
public class AppContext : DbContext { protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<Agente>().HasMany(a => a.Territori) .WithMany(t => t.Agenti); } ... }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare EF.Constant per evitare la parametrizzazione di query SQL
Implementare l'infinite scroll con QuickGrid in Blazor Server
Utilizzare una qualunque lista per i parametri di tipo params in C#
Collegare applicazioni server e client con .NET Aspire
Gestione CSS in Blazor con .NET 9
Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
Introduzione alle Container Queries
Conoscere il rendering Server o WebAssembly a runtime in Blazor
Change tracking e composition in Entity Framework