当前位置:  开发笔记 > 编程语言 > 正文

如何在代码优先迁移中强制删除并重新创建选定的表?

如何解决《如何在代码优先迁移中强制删除并重新创建选定的表?》经验,为你挑选了1个好方法。

我想删除一个包含一千列的表,让迁移重新创建它.我可以发一个

    DropTable("MyTableWithManyColumns");

但问题是我会像这样手动创建表

    CreateTable(
            "dbo.MyTable",
            c => new
                {
                    RowId = c.Int(nullable: false, identity: true),
                    // many columns follow...
                })
            .PrimaryKey(t => t.RowId);

更简单的方法是使用SSMS并右键单击Drop Create Table到新窗口并从那里执行.

但有没有一种使用代码迁移的简单方法?



1> Fabio Luz..:

我可以看到两种可能的方式:

    从数据库中删除表

    生成新的迁移(使用Add-Migration).将生成创建缺失表的新迁移

    执行迁移(使用Update-Database)

要么

    从上下文中删除实体(请记住删除与其他实体的所有关系)

    使用生成迁移Add-Migration(它将生成一个drop table方法)

    使用执行迁移 Update-Database

    将实体添加到上下文中

    使用生成新的迁移Add-Migration(它将生成一个create table方法)

    使用执行迁移 Update-Database

希望能帮助到你!


不要使用选项1!EF不会从数据库中获取随机手动删除的表.
推荐阅读
oDavid_仔o_880
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有