Entity Framework IdentityUser 覆盖 UserName 将不会保存在数据库中

Entity Framework IdentityUser override UserName will not be saved in database

我在 Entity Framework IdentityUser 时遇到问题,当覆盖用户名然后尝试创建新用户时,即使保存了规范化的用户名,用户名也不会保存在数据库中。

当我覆盖时,电子邮件发生同样的问题。

多年来我一直在许多项目中以这种方式使用它,没有任何问题,但在这方面我无法找出它发生的原因。

如果我删除覆盖属性,那么它将很好地保存在数据库中,但我确实需要覆盖。

请协助。

您是否将您的用户 class 传递给了 IdentityDbContext?

在您继承 IdentityDbContext 的 applicationDbContext 中,如果您有自己的特定用户或角色 class,您必须将这些 class 传递给 IdentityDbContext。

public class ApplicationDbContext: IdentityDbContext<UserClass, RoleClass, TKey>{}

而且在 StartUp.cs class 中,您必须在添加身份服务的地方添加这些 classes。

services.AddIdentity<UserClass, RoleClass>();