【问题标题】:Dropping a table using entity framework 6使用实体框架 6 删除表
【发布时间】:2014-05-28 19:34:48
【问题描述】:

我首先使用实体​​框架 6 代码处理一个项目,我正在尝试找出正确的方法从数据库中删除一个现已过时的表。网上似乎没有太多关于这方面的信息,我知道我可以简单地从我的 dbcontext 中删除 dbset,删除它的迁移文件以及 db 中的迁移表中的行,但我只是想看看是否这是唯一的方法,因为这似乎很麻烦?

【问题讨论】:

标签: ef-code-first entity-framework-6


【解决方案1】:

如果我理解正确,您也在使用迁移,因此简单地删除迁移文件不是一个好主意,因为它会破坏具有最新迁移的数据库。

而是在从 DbContext 中删除相关的 DbSet 之后创建另一个迁移步骤,当然还有从仍在数据库。

当你创建这个新的迁移步骤时,瞧,一个 DropTable(...) 迁移操作将出现在 Up() 函数中,它将删除这个表。

我认为这是解决您的问题的最干净和最简单的解决方案 :)

【讨论】:

    【解决方案2】:

    这有点复古,但请尝试以下。在这个例子中,db 是数据库上下文,A 是表名:

    db.Database.ExecuteSqlCommand("drop table A");
    

    似乎对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多