Удаление таблиц удостоверений ASP.NET из базы данных

Как удалить таблицы идентификаторов 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 и любых других потенциальных следов, которые я мог упустить.


person MHOOS    schedule 26.11.2014    source источник
comment
Что плохого в том, чтобы просто отбросить столы?   -  person mason    schedule 26.11.2014
comment
Очевидно, что все в порядке, но я спрашивал, единственно ли это возможный метод.   -  person MHOOS    schedule 26.11.2014
comment
Любой метод в конечном итоге будет запускать те же самые команды перетаскивания. Как вы создавали таблицы? Запуская команды непосредственно против сервера? Тогда уместно обратное. Я не знаком с настройкой Identity, но вы вызывали какую-то CreateTablesOnDatabase() функцию? Если так, то я полагаю, что существует эквивалент DropTablesonDatabase(), или вы могли бы увидеть, что функция create делает для создания обратного.   -  person mason    schedule 26.11.2014
comment
Я использую подход EF6 Code First и получаю свою базу данных из IdentityDbContext, который автоматически заботится о создании соответствующих таблиц, а также тех, которые я явно указываю.   -  person MHOOS    schedule 26.11.2014
comment
Если вы использовали сначала базу данных, здесь SQL, который нужно выполнить для создания таблиц. Возможно, вам стоит попробовать обратное.   -  person mason    schedule 26.11.2014
comment
Я думаю, что мы находимся на разных страницах в этом вопросе. Я ищу какое-нибудь решение ASP.NET Identity или entity framework (если есть), и становится очевидным, что удаление этих таблиц с помощью оператора SQL - единственно возможный вариант. Тем не менее, спасибо за усилия.   -  person MHOOS    schedule 26.11.2014
comment
Мы на одной странице. Я просто хотел указать, что для отмены того, что вы сделали, вы просто делаете обратное в обратном порядке.   -  person mason    schedule 26.11.2014
comment
Как отменить это = ›ApplicationDbContext: IdentityDbContext ‹ApplicationUser›   -  person MHOOS    schedule 26.11.2014
comment
Это не то, что на самом деле сделало ваши таблицы, не так ли? Вы используете миграцию кода. Следовательно, когда вы выполняли миграцию, она автоматически создавала ваши таблицы, выполняя последовательность операторов create table. Итак, вы можете попробовать откатить миграции и посмотреть, удаляет ли он таблицы. Или вы можете удалить их вручную. Обратите внимание, что я пытаюсь научить вас концепции того, как что-то отменить, и важная часть этого - понимание того, как это вообще произошло.   -  person mason    schedule 26.11.2014
comment
Есть ли что-нибудь еще, что, как вы думаете, вы могли бы научить меня сегодня, потому что я учусь у вас классному реверс-инжинирингу?   -  person MHOOS    schedule 26.11.2014
comment
Очень нравится мой молодой подмастерье. (по-видимому, у вас 10 лет на мне) Вы, наверное, тоже могли бы меня кое-чему научить. К сожалению, вам просто нужно будет задать новый вопрос с новой проблемой, если вам нужна помощь по другим вопросам.   -  person mason    schedule 26.11.2014
comment
Мне нравится твоя уверенность, но у меня есть совет и для тебя. Не будьте слишком самоуверенными. Чрезмерная уверенность смертельна.   -  person MHOOS    schedule 26.11.2014
comment
хаха вы, ребята, смешные!   -  person Pascal    schedule 24.08.2015


Ответы (2)


Просто примечание: __MigrationHistory не является частью Identity framework - это таблица, в которой хранится информация о состоянии БД для EF-Migrations. Если вы хотите сохранить состояние миграции и продолжать использовать миграции, ничего не делайте с этой таблицей (если вы не знаете, что делаете)

И я отмечу (похоже, что у вас уже есть ответы), что если вы создали эти таблицы путем миграции, вы можете вернуться к нулевому состоянию с помощью

update-database -target:0

Это запустит все ваши миграции до самого начала, и у вас останется одна таблица __MigrationHistory

person trailmax    schedule 27.11.2014

Вам необходимо удалить следующие таблицы из базы данных.

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

Также вам нужно удалить схему идентификации, если она уже существует в вашей базе данных.

person Osman Taskiran    schedule 25.02.2020