如何在Entity Framework Code First中删除表?

emr*_*azi 8 c# entity-framework database-migration ef-code-first ef-migrations

我正在使用Entity Framework和Auto Migrations.

因此,当我向Context添加新模型时,我的数据库会更新并创建新表.

我想要做的是反过来,完全从数据库中删除表.但是,从Context类中删除定义不起作用.

public class CompanyContext : DbContext
{
    public DbSet<Permission> Permissions { get; set; }
    public DbSet<Company> Companies { get; set; }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
       base.OnModelCreating(modelBuilder);
    }
}
Run Code Online (Sandbox Code Playgroud)

例如,我想Company从数据库中删除表.为此,我CompaniesCompanyContext类中删除属性.但是,它不起作用.

如果可能,在EF中删除表并使用自动迁移的正确方法是什么?

Cod*_*Mad 1

您应该实现“IDatabaseInitializer”并创建自定义逻辑来执行此操作。例如,请访问

\n\n

另请参阅“如何在 Code First Drop-Create 模式下使用实体框架? ”如果有帮助的话。

\n\n

根据我自己的经验,我通过从 VS 2010 的包控制台管理器运行以下语句来完成此操作

\n\n
update-database -StartupProjectName "Your Project Namespace" -script -Verbose \xe2\x80\x93force\n
Run Code Online (Sandbox Code Playgroud)\n\n

确保您已选择“您的项目命名空间”作为默认项目。

\n