使用不同的 db-schema 创建身份(成员)数据库

Create Identity (Membership) database with a different db-schema

在我的 asp net core 3.1 项目中,我通过在创建新模板时添加身份验证来尝试 MS Identity (Asp net core 3.1+react)

我希望将我的身份表添加到不同的模式,using this simple Guide, 即

protected override void OnModelCreating(ModelBuilder modelBuilder)
{
    base.OnModelCreating(modelBuilder);
    modelBuilder.HasDefaultSchema("notdbo");
}

但是当我 运行 在包管理器中“更新数据库”时,它仍然在 dbo-schema 中创建一个数据库

以下是一些可能导致此问题的原因:

  • 连接字符串上的用户应该有权访问架构
  • 如果您对模型有未决的更改,这可能会导致问题。由于初始迁移基于 dbo 架构,现在您正尝试在有未决更改时更改架构。尝试:

选项 1:

  • Add-Migration(如 中所述)- 这会根据指定的名称使用 Up() 和 Down() 方法创建一个新迁移 class。
  • Update-Database

选项 2:

  • 删除对模型的未决更改
  • 运行update-database。这将执行由 Add-Migration 命令创建的最后一个迁移文件并将更改应用到数据库模式。
  • 更改架构,您应该能够重新创建数据库

您需要先添加有效的迁移,然后再执行 Update-Database。问题是代码中已经有一个待处理的迁移,所以这就是为什么您的更改不会被检测到的原因。