Domanda

Sulla base di un progetto MVC5 di esempio Sto cercando di imparare il modo corretto per gestire le migrazioni.

Nella directory principale ho una cartella chiamata "dbcontexts" con due contesti.

Primo: identitycontext.cs

    public class IdentityContext : IdentityDbContext<ApplicationUser>
{
    public IdentityContext()
        : base("DefaultConnection")
    { }
}
.

Quindi ho una cartella chiamata IdentityMigrations con Configuration.cs

    internal sealed class Configuration : DbMigrationsConfiguration<TryFive.Web.DbContexts.IdentityContext>
{
    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
        MigrationsDirectory = @"DbContexts\IdentityMigrations";
    }

    protected override void Seed(TryFive.Web.DbContexts.IdentityContext context)
    {
        //  This method will be called after migrating to the latest version.

        //  You can use the DbSet<T>.AddOrUpdate() helper extension method 
        //  to avoid creating duplicate seed data. E.g.
        //
        //    context.People.AddOrUpdate(
        //      p => p.FullName,
        //      new Person { FullName = "Andrew Peters" },
        //      new Person { FullName = "Brice Lambson" },
        //      new Person { FullName = "Rowan Miller" }
        //    );
        //
    }
}
.

Allora ho mycontexts con proprietà simili.

Quando provo a eseguire il comando "Update-Database" ottengo questo messaggio di errore: The type 'TryFive.Web.DbContexts.IdentityContext' does not inherit from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'. Migrations configuration types must extend from 'System.Data.Entity.Migrations.DbMigrationsConfiguration'.

Qualche idea su come risolvere questo o un modo migliore per fare questa roba dbcontext?

È stato utile?

Soluzione

Suggerimento: se stai solo facendo un progetto di esempio per imparare le migrazioni come dici, attenersi a un dbcontext.Tenerlo semplice: unisci le tue entità in un dbContext che eredita da IdentityDbContext<ApplicationUser>

Elimina le tue cartelle migrazioni esistenti che hai creato - e re "Abilita-migrazioni" dopo aver eliminato il secondo DBContext.Questo ti aiuterà a continuare a continuare le migrazioni di apprendimento, invece di imparare come usare due DbContext in un progetto.

Inoltre, @lajos, non sono sicuro di quale MVC stai parlando, ma il mio dbContext non ha mai ereditato da DbmigrationSconfiguration: erediti da dbcontext o identitydbcontext.Ciò che ti riferisci è la classe migrationsconfiguration che viene generata al momento del rilascio "Abilita-migrazioni" su un progetto.Viene utilizzato per generare migrazioni e dati di semina.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top