数据库中已经有一个名为 'AspNetRoles' 的对象。在 asp.net 核心 3.1 中
There is already an object named 'AspNetRoles' in the database. in asp.net core 3.1
原来我想执行迁移,但我不想丢失数据库中的数据,在尝试更新我的数据库时收到以下错误:
应该说我用的是asp.net core 3.1
There is already an object named 'AspNetRoles' in the database.
如问题消息所述,当您通过 EF 核心更新数据库时,数据库中已经有一个名为 'AspNetRoles' 的对象。
要解决此问题,您可以在创建所有授权表的迁移中注释Up方法的内容。像这样:
public partial class initial : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
//migrationBuilder.CreateTable(
// name: "AspNetRoles",
// columns: table => new
// {
// Id = table.Column<string>(nullable: false),
// ConcurrencyStamp = table.Column<string>(nullable: true),
// Name = table.Column<string>(maxLength: 256, nullable: true),
// NormalizedName = table.Column<string>(maxLength: 256, nullable: true)
// },
// constraints: table =>
// {
// table.PrimaryKey("PK_AspNetRoles", x => x.Id);
// });
//
// ... Other Identity tables, sucn as AspNetUsers, AspNetUserRoles.
}
}
此外,如果您在使用 Fluent API 配置时遇到此问题,您可以尝试在 OnModelCreating 方法中添加 base.OnModelCreating(builder);
,像这样(将 ApplicationDbContext
更改为您的):
public class ApplicationDbContext : IdentityDbContext
{
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
//Fluent API Configurations
}
}
原来我想执行迁移,但我不想丢失数据库中的数据,在尝试更新我的数据库时收到以下错误:
应该说我用的是asp.net core 3.1
There is already an object named 'AspNetRoles' in the database.
如问题消息所述,当您通过 EF 核心更新数据库时,数据库中已经有一个名为 'AspNetRoles' 的对象。
要解决此问题,您可以在创建所有授权表的迁移中注释Up方法的内容。像这样:
public partial class initial : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
//migrationBuilder.CreateTable(
// name: "AspNetRoles",
// columns: table => new
// {
// Id = table.Column<string>(nullable: false),
// ConcurrencyStamp = table.Column<string>(nullable: true),
// Name = table.Column<string>(maxLength: 256, nullable: true),
// NormalizedName = table.Column<string>(maxLength: 256, nullable: true)
// },
// constraints: table =>
// {
// table.PrimaryKey("PK_AspNetRoles", x => x.Id);
// });
//
// ... Other Identity tables, sucn as AspNetUsers, AspNetUserRoles.
}
}
此外,如果您在使用 Fluent API 配置时遇到此问题,您可以尝试在 OnModelCreating 方法中添加 base.OnModelCreating(builder);
,像这样(将 ApplicationDbContext
更改为您的):
public class ApplicationDbContext : IdentityDbContext
{
public DbSet<ApplicationUser> ApplicationUsers { get; set; }
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
//Fluent API Configurations
}
}