迁移到身份AspNetUsers

时间:2018-03-09 09:07:41

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

我在我的新MVC项目中添加了Identity,我有DB,其中包含在WPF应用中使用的基本AccountCustomers等表。现在一切正常,注册用户被添加到AspNetUsers表格......但是我的DB没用。

现在我有1000个Id帐户是自动增量整数,MobileNumberPasswords。如何迁移AspNetUsers中的所有内容,或者我可以更好地切换到我的表而不使用带有String作为Id的AspNetUsers表,因为我的其他表使用Account表?

1 个答案:

答案 0 :(得分:0)

考虑到您的情况并非一般,我不知道Identity会如何直接解决问题。您始终可以使用查询将数据从Account迁移到AspNetUsers。主要是passwordMobileNumber(到username)。移动后,您可以使用ApplicationUser类覆盖任何属性。我通常做这样的事情:

[MaxLength(36)]
public override string Id { get; set; }

虽然Id仍然是一个字符串,但它是一个较小的字符串。如果你真的想把这个pk改成一个链接,那么正式的提供https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-primary-key-configuration?tabs=aspnetcore2x

如果您担心所有外键都是字符串,一种简单的方法就是设置这样的中间模型:

public class UserIdentity
{
    public int ID { get; set; }

    public int ApplicationUserID { get; set; }
    public ApplicationUser ApplicationUser { get; set; }

}

但是,请记住,每次需要验证用户详细信息时,这都会有额外的连接。

<强>更新

考虑到您已经有一张表Account,其中包含已在其他表格中使用过的主键,您还可以更新自己的帐户Account

public class Account 
{
    ...
    public int ApplicationUserID { get; set; }
    public ApplicationUser ApplicationUser { get; set; }
}

这样您就可以继续使用Account的fk