Mappare una relazione molti a molti via codice con Entity Framework Code-First

di Stefano Mostarda, in LINQ, Entity Framework,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi