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
Le novità di Angular: i miglioramenti alla CLI
Creare un'applicazione React e configurare Tailwind CSS
Accesso sicuro ai secrets attraverso i file in Azure Container Apps
Utilizzare Tailwind CSS all'interno di React: installazione
Creazione di componenti personalizzati in React.js con Tailwind CSS
Eseguire una GroupBy per entity in Entity Framework
Gestire i null nelle reactive form tipizzate di Angular
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Eseguire query manipolando le liste contenute in un oggetto mappato verso una colonna JSON
Migrare una service connection a workload identity federation in Azure DevOps
Utilizzare la libreria Benchmark.NET per misurare le performance
Generare file PDF da Blazor WebAssembly con iText
I più letti di oggi
- I nuovi metodi degli array di ECMAScript 5
- Evitare (o ridurre) il repo-jacking sulle GitHub Actions
- Un custom control BoundField con dropdownlist
- .NET Core 3, C#8 and beyond
- Utilizzare long polling in HTML5 per richieste in real time
- Utilizzare le shortcut da tastiera con KeyboardAccelerator nella Universal Windows Platform
- Microsoft Security Bulletin MS05-048