Pergunta

Com base em uma amostra MVC5 projeto que eu estou tentando aprender a maneira correta de lidar com as migrações.

No diretório raiz, eu tenho uma pasta chamada "DbContexts" com dois Contextes.

Primeiro:IdentityContext.cs

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

então eu tenho uma pasta chamada IdentityMigrations com a Configuração.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" }
        //    );
        //
    }
}

Então eu tenho MyContexts com propriedades semelhantes.

Quando eu tento executar o "Update-Banco de dados de comando" recebo esta mensagem de erro: 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'.

Alguma idéia de como consertar isso ou uma maneira melhor para fazer isto DbContext coisas?

Foi útil?

Solução

Sugestão:Se você está apenas fazendo um projeto de exemplo para aprender migrações, como você diz, para manter um DbContext.Mantenha-o simples - mesclar suas entidades em um que herda de DbContext IdentityDbContext<ApplicationUser>

Exclua o existente migrações pastas que você criou e re "enable-migrations" depois de eliminar o seu segundo DbContext.Isso vai ajudar você a continuar a aprendizagem migrações, em vez de aprender como usar dois DbContext em um projeto.

Também, @Lajos, eu não tenho certeza de que MVC você está falando, mas meu DbContext é nunca ter herdado de DbMigrationsConfiguration - eles herdar de DbContext, ou IdentityDbContext.O que você está se referindo é o MigrationsConfiguration classe que é gerado quando a emissão de "enable-migrations" em um projeto.Ele é usado para gerar as migrações e a propagação de dados.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top