C# 从数据库中删除ASP.NET标识表

C# 从数据库中删除ASP.NET标识表,c#,asp.net,entity-framework,asp.net-identity-2,C#,Asp.net,Entity Framework,Asp.net Identity 2,如何从数据库中删除ASP.NET标识表?现在,我的数据库中添加了以下表: __迁移历史 AspNetRoles AspNetUserClaims AspNetUserLogins AspNetUserRoles 网络用户 我知道我可以写下这样的东西: DROP TABLE __MigrationHistory DROP TABLE AspNetUserLogins DROP TABLE AspNetUserRoles DROP TABLE AspNetUserClaims DROP TABL

如何从数据库中删除ASP.NET标识表?现在,我的数据库中添加了以下表:

  • __迁移历史
  • AspNetRoles
  • AspNetUserClaims
  • AspNetUserLogins
  • AspNetUserRoles
  • 网络用户
我知道我可以写下这样的东西:

DROP TABLE __MigrationHistory
DROP TABLE AspNetUserLogins
DROP TABLE AspNetUserRoles
DROP TABLE AspNetUserClaims
DROP TABLE AspNetRoles
DROP TABLE AspNetUsers

然而,我想知道这是否是正确的方法,是否有更优雅的方法来删除ASP.NET标识表和我可能遗漏的任何其他潜在跟踪。

请注意:
\u MigrationHistory
不是Identity framework的一部分,而是存储有关数据库状态信息的表EF迁移。如果要保留迁移状态并继续使用迁移,请不要对此表执行任何操作(除非您知道自己在做什么)

我要指出(看起来你已经有了答案)如果你已经通过迁移创建了这些表,你可以通过迁移回滚到“零状态”


这会将所有迁移运行回起点,只剩下一个表
\u MigrationHistory

您必须从数据库中删除以下表

DROP TABLE __EFMigrationsHistory
Drop Table AspNetRoleClaims
DROP TABLE AspNetUserLogins
DROP TABLE AspNetUserRoles
DROP TABLE AspNetUserClaims
Drop Table AspNetUserTokens
DROP TABLE AspNetRoles
DROP TABLE AspNetUsers

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

简单地删除表有什么错?没有明显的错误,但我想问的是,这是否是唯一可能的方法。任何方法最终都会运行这些相同的drop命令。您是如何创建这些表的?通过直接对服务器运行命令?那么反过来就合适了。我不熟悉设置标识,但您是否调用了某种
CreateTablesOnDatabase()
函数?如果是这样的话,我想象有一个等价的
DropTablesonDatabase()
或者您可以看到create函数如何创建反转。我使用EF6代码优先的方法,并从IdentityDbContext派生数据库,它自动创建相关表以及我明确指定的表。我喜欢您的信心,但我也有一个建议给您。不要“过于自信”。“过度自信”是致命的。
DROP TABLE __EFMigrationsHistory
Drop Table AspNetRoleClaims
DROP TABLE AspNetUserLogins
DROP TABLE AspNetUserRoles
DROP TABLE AspNetUserClaims
Drop Table AspNetUserTokens
DROP TABLE AspNetRoles
DROP TABLE AspNetUsers