我在我的新MVC项目中添加了Identity
,我有DB
,其中包含在WPF应用中使用的基本Account
,Customers
等表。现在一切正常,注册用户被添加到AspNetUsers
表格......但是我的DB
没用。
现在我有1000个Id
帐户是自动增量整数,MobileNumber
和Passwords
。如何迁移AspNetUsers
中的所有内容,或者我可以更好地切换到我的表而不使用带有String作为Id的AspNetUsers
表,因为我的其他表使用Account
表?
答案 0 :(得分:0)
考虑到您的情况并非一般,我不知道Identity会如何直接解决问题。您始终可以使用查询将数据从Account
迁移到AspNetUsers
。主要是password
和MobileNumber
(到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