如何删除EF6 DbContext的表和迁移记录?

时间:2018-01-31 00:18:53

标签: c# entity-framework dbcontext

我正在编写一个服务,它将在某个时候决定它需要存储值,因此需要在现有数据库中创建表。稍后,它将决定它不再需要此存储,因此应删除这些表。这个循环可以重复多次。我使用EF6来简化数据库操作。

创建表格很简单,因为第一次使用 DbContext 时,它会自动创建表格以及初始迁移记录。为了避免必须创建详细的迁移类,我只是从 DbMigrationsConfiguration 中派生一个类,然后将 AutomaticMigrationsEnabled 设置为true。然后它使用代码第一个模型类生成表。

问题是,稍后我需要删除这些表和匹配的迁移记录。似乎没有任何有用的方法来做到这一点。我找到的最接近的是 DbContext.Database.Delete()。这是不合适的,因为它试图删除整个数据库,但这是不可能的,因为数据库有许多其他表用于其他目的。

是否无法告诉EF6删除 DbContext 的所有表和迁移记录?这似乎是一个奇怪的遗漏。我不希望不再需要很多僵尸表。并非每个人都可以创建和删除整个数据库以支持单个 DbContext

0 个答案:

没有答案