Когда я добавляю новую миграцию в проект, EF Core 2 по-прежнему выполняет начальную миграцию вместо последней

#c# #asp.net-core #entity-framework-core #entity-framework-migrations

#c# #asp.net-core #entity-framework-core #entity-framework-миграции

Вопрос:

У меня есть ASP.NET Проект Core 2 и база данных MySQL, я использую EF с подходом, основанным на коде.

Я пытаюсь добавить новые свойства Models и получаю ошибку при выполнении Update-Database .

Давайте предположим, что у меня есть класс модели Test , подобный этому:

 public class Test 
{
    public int Id { get; set }
    public string Name { get; set; }
    ...
}
  

Я добавляю новое свойство:

 public string LastName { get; set; }
  

Затем я запускаю Add-Migration AddLastName и Update-Database вижу в выводе w, что первая миграция не применяется Initial AddLastName . Итак, последняя ошибка, которую я вижу Table 'AspNetRoles' already exists

Есть идеи?

Комментарии:

1. вы удалили записи таблицы миграции?

2. @RamyMohamed Я использовал экземпляр Digital Ocean, а теперь перешел на AWS, поэтому моя __EFMigrationHistory пуста, верно

Ответ №1:

Я предполагаю, что вы удалили записи миграции в базе данных, поэтому, если это так, вам придется заново сконструировать базу данных, удалив ее из своей базы данных и повторно запустив начальную миграцию (только если вы только что создали базу данных без каких-либо полезных записей в ней).). Другим вариантом было бы просто удалить из миграции те записи, которые, по вашему мнению, таблицы уже находятся в базе данных, из методов UP и DOWN и запустить миграцию только с теми записями, которые, по вашему мнению, находятся в ожидании, и запустить команду update-database .