我将 EF Code First 与 DontDropDbJustCreateTablesIfModelChanged
结合使用。
我使用它是因为我正在部署到 Appharbor,这样只有表被删除/重新创建,而不是数据库。
在同一个数据库中,我使用 aspnet_regsql
工具为 Membership 和 Role provider 生成表。
如何让 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]]
最佳答案
使用您自己的自定义逻辑实现您自己的 IDatabaseInitializer 以排除这些表(或只是不包括它们) 请在此处查看示例: https://gist.github.com/895730
关于c# - 如何告诉 EF Code First 仅删除使用 DbSet 定义的表而不删除同一数据库中的其他表(Memberhisp 表)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8661499/