Получение нескольких DBContexts использовать миграции с одной и той же базой данных

StackOverflow https://stackoverflow.com//questions/21053780

Вопрос

На основании образца проекта MVC5 я пытаюсь выучить правильный способ обрабатывать миграции.

В корневом каталоге у меня есть папка, называемая «DBContexts» с двумя контекстами.

Первый: IdentityContext.cs

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

Тогда у меня есть папка, называемая идентификационными миграциями с конфигурацией .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" }
        //    );
        //
    }
}
.

Тогда у меня есть mycontexts с аналогичными свойствами.

Когда я пытаюсь запустить команду «Обновить базу данных», я получаю сообщение об ошибке: 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'.

Любая идея о том, как исправить это или лучший способ сделать этот материал DBContext?

Это было полезно?

Решение

Предложение: Если вы просто выполняете образец проекта для изучения миграций, как вы говорите, придерживайтесь одного DBContext.Держите его простым - объединить ваши объекты в один DBContext, который наследуется от IdentityDbContext<ApplicationUser>

Удалите свои существующие папки Migrations, которые вы создали - и «Включить-миграцию» после удаления второго DBContext.Это поможет вам продолжить изучение миграции, а не изучать, как использовать два проекта DBContext в одном проекте.

также, @lajos, я не уверен, о котором вы говорите, но мой DBContext's никогда не унаследовал от DBMigrationsConfiguration - они наследуют от DBContext или IdentityDBContext.То, что вы ссылаетесь, - это класс MigrationsConfiguration, который генерируется при выпуске «включения-миграции» на проекте.Он используется для генерации миграций и высева данных.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top