Question

Sur la base d'un exemple de projet MVC5, j'essaie d'apprendre la bonne façon de gérer les migrations.

dans le répertoire racine, j'ai un dossier appelé "dbcontexts" avec deux contextes.

premier: identityContext.cs

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

Puis j'ai un dossier appelé identitymigrations avec la 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" }
        //    );
        //
    }
}

Puis j'ai des mycontextes avec des propriétés similaires.

Lorsque j'essaie d'exécuter la commande "Base de données update", je reçois ce message d'erreur: 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'.

Une idée de la manière de résoudre ce problème ou d'une meilleure façon de faire ce type de dBContext?

Était-ce utile?

La solution

Suggestion: Si vous faites simplement un exemple de projet pour apprendre les migrations comme vous le dites, collez-vous à un dBContext.Conservez-le simple - fusionner vos entités dans un dBContext qui hérite de IdentityDbContext<ApplicationUser>

Supprimez vos dossiers de migrations existants que vous avez créés - et de «Activer-migrations» après avoir supprimé votre deuxième dBContext.Cela vous aidera à continuer à apprendre les migrations, au lieu d'apprendre à utiliser deux dBContext d'un projet.

Aussi, @lajos, je ne suis pas sûr du MVC dont vous parlez, mais mes dbcontext n'ont jamais hérité de DBMigrationConfiguration - ils héritent de DBContext ou d'IdentityDBContext.Ce que vous parlez est la classe des migrationsConfiguration qui est générée lors de la délivrance de «migrations enable» sur un projet.Il est utilisé pour générer des migrations et des données d'ensemencement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top