从数据库中删除ASP.NET Identity表

3
如何从数据库中删除ASP.NET身份验证表?目前,我的数据库中添加了以下表格:
  • __MigrationHistory
  • AspNetRoles
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • AspNetUsers
我知道我可以编写类似以下的内容:
DROP TABLE __MigrationHistory
DROP TABLE AspNetUserLogins
DROP TABLE AspNetUserRoles
DROP TABLE AspNetUserClaims
DROP TABLE AspNetRoles
DROP TABLE AspNetUsers

然而,我在想这是否是正确的方法,是否还有更优雅的方法来删除ASP.NET Identity表和我可能遗漏的任何其他潜在痕迹。

简单地删除表有什么问题吗? - mason
我使用 EF6 的 Code First 方法,并从 IdentityDbContext 派生我的数据库,它会自动处理创建相关的表格以及我明确指定的表格。 - MHOOS
如何撤销这个 => ApplicationDbContext : IdentityDbContext<ApplicationUser> - MHOOS
1
我喜欢你的自信,但我也有一个建议给你。不要过于自信。"过度自信"是致命的。 - MHOOS
哈哈,你们很有趣! - Pascal
显示剩余8条评论
2个回答

4
你需要从数据库中删除以下表格。
DROP TABLE __EFMigrationsHistory
Drop Table AspNetRoleClaims
DROP TABLE AspNetUserLogins
DROP TABLE AspNetUserRoles
DROP TABLE AspNetUserClaims
Drop Table AspNetUserTokens
DROP TABLE AspNetRoles
DROP TABLE AspNetUsers

如果您的数据库中已经存在孤立的标识模式,则需要删除该标识模式。

1
注意:__MigrationHistory不是Identity框架的一部分,它是一个表,用于存储关于EF-Migrations的数据库状态信息。如果您想保留迁移状态并继续使用迁移,请不要对此表进行任何操作(除非您知道自己在做什么)。
我要指出的是(看起来您已经有了答案),如果您通过迁移创建了这些表,您可以通过回滚到“零状态”来恢复它们。
update-database -target:0

这将运行所有的迁移,使其回到起始状态,最终只剩下一个名为__MigrationHistory的表格。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接