При запуске команды update-database происходит ошибка:
There is already an object named 'Weapons' in the database.
Есть несколько моделей EF Core (упрощенная структура):
abstract class Weapon {
public int Id { get; set; }
public string Name { get; set; }
}
class Axe : Weapon {
}
class Sword : Weapon {
}
class GameDbContext : DbContext {
public DbSet<Weapon> Weapons { get; set; }
public GameDbContext(DbContextOptions options) : base(options){
this.Database.EnsureCreated();
}
protected override void OnModelCreating(ModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
this.SetModelsConfigurations(modelBuilder);
modelBuilder.Entity<Axe> ().HasBaseType<Weapon>();
modelBuilder.Entity<Sword>().HasBaseType<Weapon>();
}
}
Команда - "add-migration Init" для приведенных моделей выполняется нормально, без ошибок. Но при запуске команды update-database происходит ошибка:
There is already an object named 'Weapons' in the database.
Почему происходит данная ошибка? Какие настройки БД нужно выполнить/удалить/добавить, что бы заставить код работать?
Согласно документации DatabaseFacade.EnsureCreated
Note that this API does not use migrations to create the database. In addition, the database that is created cannot be later updated using migrations. If you are targeting a relational database and using migrations, you can use the DbContext.Database.Migrate() method to ensure the database is created and all migrations are applied.
Вольный перевод
Данное API не использует миграции для создания БД. Кроме того, созданная таким образом БД уже не может быть обновлена при помощи миграций. Если вам нужна реляционная БД и вы используете миграции, вы можете использовать DbContext.Database.Migrate()
для того чтобы убедиться, что БД создана и все необходимые миграции применены.
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть 3 таблицы (CAT_OBL, CAT_STATION, TOS_MES), 1-я и 2-я связаны между собой по полю OBL_ID, 2-я и 3-я таблицы связанны по полю IND_STНужно вывести данные из 3-й таблицы...
Подскажите, как в панели (5 версия) установить gmpobject, strlen, sprintf, ip2long, serialize, unserialize, crypt, parse_str, json_encode, strtr, strstr, round, parse_url, simplexml_load_string, array_search ? Есть...
Есть срочки в коде (читайте комментарии в коде):
Необходимо создать ссылку для клиента, которая будет не активна после захода на неё