Код сначала Add-Migration только собирает изменения в существующие модели, но не в новые. - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть первый проект ASP.NET MVC EF code. Я скопировал это и сделал другой проект из этого. Я не менял ни одно из пространств имен или имен проектов. Я скопировал существующую БД и сделал копию с другим именем. Код первой миграции прекрасно работает в оригинальном проекте. В новом скопированном проекте они только переносят изменения в существующие модели, такие как добавление новых полей или изменение имен полей. Если я пытаюсь добавить новый класс модели, Add-Migration не принимает это изменение.

Я пробовал это , но это не сработало. Я попытался это , и это не сработало.

Я пытался удалить папку истории миграции и данные таблицы dbo._MigrationHistory и заново создать миграции, используя Enable-Migrations. Я попытался удалить существующие миграции в папке миграции и создать другую начальную миграцию, используя Add-Migration Initial -IgnoreChanges, а затем update-database. Затем добавьте мои изменения. Ничего из этого не сработало.

1 Ответ

1 голос
/ 12 апреля 2019

ВЫ должны будете запустить Enable-Migrations –EnableAutomaticMigrations .

Теперь скажите, что вам нужно сначала добавить Адрес таблицу в код вашей базы данных:

Создайте новую модель. Адрес

Создайте свой файл конфигурации, что-то

class AddressConfiguration : EntityTypeConfiguration<Address>
{
    public AddressConfiguration()
        : base()
    {
        HasKey(p => p.AddressId);
        ToTable("Address");    

    }
}

Добавьте данные DbSet и modelBuilder в основной файл XYZContext.cs

DbSet

public DbSet<Address> Address {get; set;}

MODELBUILDER

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Configurations.Add(new AddressConfiguration());
}

Запустите update-database через консоль диспетчера пакетов Visual Studio, убедитесь, что вы выбрали правильный проект из выпадающего списка, вероятно, это проект с именем .Repository.

Ваша новая таблица должна теперь существовать в вашей базе данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...