【问题标题】:Entity Framework IdentityUser override UserName will not be saved in database实体框架 IdentityUser 覆盖 UserName 将不会保存在数据库中
【发布时间】:2021-07-18 13:48:31
【问题描述】:

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

当我覆盖时,电子邮件也会出现同样的问题。

多年来,我在许多项目中一直以这种方式使用它,没有出现任何问题,但我不知道为什么会发生这种情况。

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

请帮忙。

【问题讨论】:

    标签: c# entity-framework asp.net-core entity-framework-core asp.net-identity


    【解决方案1】:

    您是否将您的 User 类传递给 IdentityDbContext?

    在继承 IdentityDbContext 的 applicationDbContext 中,如果您有自己的特定 User 或 Role 类,则必须将这些类传递给 IdentityDbContext。

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

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

    services.AddIdentity<UserClass, RoleClass>();
    

    【讨论】:

    • 我注意到这正是这个项目与其他项目相比所缺少的。这为我解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-29
    • 2011-01-18
    • 2014-10-28
    相关资源
    最近更新 更多