středa 22. července 2015

Code First relace M ku N


Zdroj:
http://stackoverflow.com/questions/11382783/entity-framework-code-first-many-to-many-mapping-table

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{    
    modelBuilder.Entity<Recipe>()
        .HasMany(x => x.Members)
        .WithMany(x => x.Recipes)
    .Map(x =>
    {
        x.ToTable("Cookbooks"); // third table is named Cookbooks
        x.MapLeftKey("RecipeId");
        x.MapRightKey("MemberId");
    });
}
Problém je že pokud používáte Context který dědí např z  IdentityDbContext<User>
tak je potřeba aby se při vytváření modelu zavolalo base.OnModelCreating(modelBuilder);
Jinak při migraci obdržíte několik chybových zpráv ve smyslu, že tabulky související s Identitou nemají nastaveny primární klíče.

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
}

Žádné komentáře:

Okomentovat