ASP.NET CORE Identity UserManager CreateAsync 架构错误

ASP.NET CORE Identity UserManager CreateAsync schema error

当AccountController.Register()中的UserManager.CreateAsync(user,password)用于创建新注册用户时,它总是出错,因为它试图将记录插入到AspNetUsers table 在 mydomain\myNetworkId 架构下。 AspNetUsers table 处于“共享”架构中。有没有办法配置身份基础设施以使用指定模式?我的数据库中有 4 个模式(app、admin、shared 和 clinical)。

SqlException: Invalid object name 'myDomain\myNetworkID.AspNetUsers'.
Microsoft.Data.SqlClient.SqlCommand+<>c.<ExecuteDbDataReaderAsync>b__164_0(Task<SqlDataReader> result)

[HttpPost]
[ValidateAntiForgeryToken]
public async Task <IActionResult> Register(RegisterViewModel registerModel) {
  if (!ModelState.IsValid) {
    return View();
  }

  CustomIdentityUser user = _mapper.Map<CustomIdentityUser>(registerModel);

  var result = await _userManager.CreateAsync(user, registerModel.Password);
  if (!result.Succeeded) {
    foreach(var error in result.Errors) {
      ModelState.TryAddModelError(error.Code, error.Description);
    }

    return View(registerModel);
  }

  await _userManager.AddToRoleAsync(user, "Visitor");

  return RedirectToAction(nameof(HomeController.Index), "Home");
}

我意识到我在 dbContext.OnModeCreating() 中的 myDomain\myNetworkName 模式中设置了默认模式。我将其更改为“共享”,如下所示,UserManager 现在可以在正确的架构中创建用户。

受保护的覆盖 void OnModelCreating(ModelBuilder modelBuilder) { modelBuilder.HasAnnotation("Relational:DefaultSchema", "shared"); /* 重新运行 EF Power Tools 后,确保将默认架构更改为共享 */