首页 > 解决方案 > 运行“update-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>();
    }
}

当我运行“添加迁移”命令时,一切正常。但是当我运行“update-database”命令时,我得到一个错误:

数据库中已经有一个名为“武器”的对象。

未创建此数据库。为什么我会收到此错误?请向我解释如何配置数据库模型。

标签: c#asp.netentity-frameworkef-core-2.1

解决方案


推荐阅读