迁移期间不会创建新表。迁移本身似乎是创建的public partial class _222 : Migration { protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.CreateTable( name: "ToDos", columns: table => new { Id = table.Column<string>(nullable: false), Name = table.Column<string>(nullable: true), Body = table.Column<string>(nullable: true) }, constraints: table => { table.PrimaryKey("PK_ToDos", x => x.Id); }); } protected override void Down(MigrationBuilder migrationBuilder) { migrationBuilder.DropTable( name: "ToDos"); } }但是当我写 Update-Database 表时没有创建。ApplicationDbContextpublic ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options) { Database.EnsureCreated(); } public DbSet<ToDo> ToDos { get; set; }全部public class ToDo { [Key] public string Id { get; set; } public string Name { get; set; } public string Body { get; set; } }来自包管理器控制台中的错误Failed executing DbCommand (1ms) [Parameters=[], CommandType='Text', CommandTimeout='30']CREATE TABLE [AspNetRoles] ( [Id] nvarchar(450) NOT NULL, [Name] nvarchar(256) NULL, [NormalizedName] nvarchar(256) NULL, [ConcurrencyStamp] nvarchar(max) NULL, CONSTRAINT [PK_AspNetRoles] PRIMARY KEY ([Id]));There is already an object named 'AspNetRoles' in the database.
1 回答
红糖糍粑
TA贡献1815条经验 获得超6个赞
错误信息非常清楚。它正在尝试创建一个名为 AspNetRoles 的表,该表已存在于数据库中。由于这不是您的迁移正在创建的表,我希望这是需要首先应用的先前迁移。可能此表是手动创建的,这就是为什么迁移历史显示仍需要应用迁移的原因。如果它是开发数据库,也许您可以删除该表并允许应用迁移。另一种解决方法是找到适用的迁移并注释掉 Up 方法的内容。不过,您需要检查现有表的架构是否正确,以防发生任何更改。
- 1 回答
- 0 关注
- 56 浏览
添加回答
举报
0/150
提交
取消