Как сказать EF Code First отбросить только те таблицы, которые определены с помощью DbSet, а не другие (таблицы Memberhisp) в одной базе данных? - PullRequest
4 голосов
/ 29 декабря 2011

Я использую EF Code First с DontDropDbJustCreateTablesIfModelChanged.Я использую это, потому что я развертываю в Appharbor, и таким образом удаляются / воссоздаются только таблицы, а не база данных.В той же базе данных я использовал инструмент aspnet_regsql для генерации таблиц для поставщика членства и роли.

Как я могу создать EF Code First для удаления / воссоздания таблиц из моего проекта, а не таблиц для членства /Роль провайдера?

Это ошибка, которую я получаю:

Cannot use DROP TABLE with 'vw_aspnet_Applications' because 'vw_aspnet_Applications' is a view. Use DROP VIEW.
Cannot use DROP TABLE with 'vw_aspnet_Users' because 'vw_aspnet_Users' is a view. Use DROP VIEW.
Cannot use DROP TABLE with 'vw_aspnet_MembershipUsers' because 'vw_aspnet_MembershipUsers' is a view. Use DROP VIEW.
Cannot use DROP TABLE with 'vw_aspnet_Roles' because 'vw_aspnet_Roles' is a view. Use DROP VIEW.
Cannot use DROP TABLE with 'vw_aspnet_UsersInRoles' because 'vw_aspnet_UsersInRoles' is a view. Use DROP VIEW.
drop table [vw_aspnet_Applications]
drop table [vw_aspnet_Users]
drop table [vw_aspnet_MembershipUsers]
drop table [vw_aspnet_Roles]
drop table [vw_aspnet_UsersInRoles]]

1 Ответ

4 голосов
/ 29 декабря 2011

Реализуйте свой собственный IDatabaseInitializer с вашей собственной пользовательской логикой, чтобы исключить эти таблицы (или просто не включать их). См. Пример здесь: https://gist.github.com/895730

...