我刚刚开始使用身份,并且对 AspNetUsers 主键有概念上的疑问。默认 PK 是 nvarchar(450),这应该可以识别系统上的此帐户。所以我的疑问是,在现实世界的应用程序中,这个 PK 被用作其他系统表中的 FK 来识别帐户?或者正常的做法是让某种中间用户的 PK 为 int,FK 为 nvarchar 值?另一件事,关于在其他表中将 nvarchar 作为 FK 的搜索性能?
最佳答案
您开始使用的基类是IdentityUser
,但您是正确的,因为它使用字符串作为 PK。此默认值映射到注册时提供的电子邮件地址,这使事情变得更加复杂。不适合在任何地方用作 FK。
我更喜欢 PK 的 Int 值,但您也可以将其设置为其他值,并且 GUID 很常见。
See this thread for further details. ,您可以将其描述中的 GUID
替换为 int
,并让 EF Core 管理迁移以帮助您到达所需位置。只要确保在需要的地方更新 ApplicationUser 即可,否则事情会变得相当棘手。
然后,如果您有任何需要将帖子与用户关联的内容(例如),您可以通过数字 PK 来实现,并将个人信息(电子邮件)保密,以防万一用户将其删除仍然附有一个号码。
关于c# - ASP.NET Core 上的身份 AspNetUsers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61332990/