【问题标题】:How to create Up and Down Methods using migrations?如何使用迁移创建 Up 和 Down 方法?
【发布时间】:2015-10-30 06:47:01
【问题描述】:

我是 Code 的新手,你能告诉我如何为数据库中的所有表设置所有 Up 和 Down 方法,如下所示(给定一个表)

public partial class abc: DbMigration
    {
        public override void Up()
        {
            AddColumn("dbo.UserTasks", "ServiceTechReason", c => c.Long());
        }

        public override void Down()
        {
            DropColumn("dbo.UserTasks", "ServiceTechReason");
        }
    }

我想要表格的所有三种类型,即 .cs 、 .Designer.cs 、 .resx。

2) 你能解释一下上面的例子吗,我是从互联网上的某个地方挑选的,我正在搜索这个,但什么也没找到。 abc 是我在数据库中的表名吗?

如果已经回答,请提供链接。

编辑

正如@scheien 所提到的,我已经尝试过这些命令,它们不会自动覆盖表格的 up 和 down 方法

【问题讨论】:

    标签: c# asp.net-mvc ef-code-first code-first entity-framework-migrations


    【解决方案1】:

    创建迁移是通过运行命令Add-Migration AddedServiceTechReason 完成的。

    这假设您已经使用Enable-Migrations 命令启用了迁移。

    要将当前迁移应用到数据库,您需要运行 Update-Database。此命令将应用所有挂起的迁移。

    Code-First 迁移的要点是您对实体进行所需的更改,然后使用 Add-Migration 命令添加新迁移。然后它将创建一个继承DbMigration 的类,其中Up()Down() 方法填充了您对实体所做的更改。

    根据@SteveGreenes 评论:它确实会获取对您的实体的所有更改,因此您无需为每个表/实体运行一次。

    如果您想自定义生成的迁移文件,请查看所列文章中的“自定义迁移”部分。

    所有这些命令都在包管理器控制台中运行。

    查看 -> 其他窗口 -> 包管理器控制台.

    Here's a great article from blogs.msdn.com that explains it in detail.

    【讨论】:

    • 我已经尝试过这些命令,它们不会为表格添加 Up 和 Down 方法
    • 那么您需要为您的问题提供更多背景信息。你没有说你已经尝试过这些命令。当您尝试Add-migration 命令时会发生什么?
    • 呸!!糟糕的是,我只运行Add-Migration abc -ProjectName main.project -StartUpProjectName pqr 并且它工作但我必须为每张表运行它吗?我的意思是我可以在一个命令中拥有所有这些。如果我像这样运行它,它会询问名称'Add-Migration -ProjectName main.project -StartUpProjectName pqr'
    • Add-Migration 将从您的模型中获取自上次迁移以来的所有更改,所以不,您不会按表运行它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 2020-02-12
    • 1970-01-01
    • 2012-08-29
    相关资源
    最近更新 更多