utilizzare EF Codice Prima e hanno un problema in relazione nn, supponiamo di avere un cantante che cantare in alcuni generi, così abbiamo bisogno di questo modelli: artista, genere, e ArtistsGenres, definisco modelle come segue:Come funziona la relazione n-n del modello in primo luogo per generare automaticamente le viste generate correttamente?
Questo è il mio artista Modello:
public class Artist
{
public long Id { get; set; }
public string Name { get; set; }
public ICollection<Genre> Genres { get; set; }
}
E il mio genere Modello:
public class Genre
{
public long Id { get; set; }
public string Title { get; set; }
public ICollection<Artist> Artists { get; set; }
}
E la mia classe del contesto:
public class MusicDB : DbContex
{
public DbSet<Artist> Artists { get; set; }
public DbSet<Genre> Genres { get; set; }
public DbSet<ArtistsGenres> ArtistsGenres { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.Entity<Artist>()
.HasMany(a => a.Genres)
.WithMany(g => g.Artists)
.Map(model => {
model.ToTable("ArtistsGenres");
model.MapLeftKey("Artist_Id");
model.MapRightKey("Genre_Id");
});
base.OnModelCreating(modelBuilder);
}
}
Tuttavia, non vi è alcuna relazione tra Artisti e Generi quando MVC genera automaticamente le viste.
Ad esempio, ho bisogno di cambiare Generi di un artista in visualizzazione di modifica, in Crea vista Posso impostare Generi per un artista, o in Vista indice Voglio generi di spettacoli per ogni artista. Ma non esiste alcuna generazione di Generi in relazione all'artista quando MVC genera automaticamente le viste.
So che posso accedere sia a Generi che a Artisti da entrambi i lati, ma sono interessante in MVC generare automaticamente le visualizzazioni come vogliamo: per esempio: per ogni genere di genere.
Come posso fare questo? Il mio modello è corretto? È vero per qualsiasi relazione (da n a n) che richiede ICollection da entrambe le parti? O ho bisogno di alcuni elementi in prioritario della OnModelCreating
metodo nella classe del contesto, per esempio qualcosa di simile:
modelBuilder.Entity<Artist>()
.HasMany(a => a.Genres)
.WithMany(g => g.Artists);
Please help me, non so l'esatta applicazione della relazione Nton.
il tuo diritto, ma questa soluzione crea solo un tavolo ArtistsGenres automaticamente e tutti i miei problemi di acciaio non sono risolti, non c'è alcuna relazione tra genere e artista in nessuna vista. – Saeid
Modifica la mia domanda con la tua risposta – Saeid
Se vuoi dire che 'MVC' genera' View's con l'associazione dei modelli automaticamente, per quanto ne so, non può! e dovresti creare i tuoi template 'T4'. Intendevi questo? Se sì, dovresti cambiare la tua Q, in caso contrario, per favore spiega di più il tuo scopo. Cordiali saluti –