我有一个带DateCreated
字段的表格。我想添加另一个日期字段用于排序目的(事件可以触发一个度假胜地)。
有没有办法将新字段DateSortBy
设置为迁移文件中DateCreated
的现有值?
我生成的Up()
函数如下所示:
public override void Up()
{
AddColumn("dbo.MyTable", "DateSortBy", c => c.DateTimeOffset(nullable: false, precision: 7));
}
我基本上希望数据看起来像这样
| Id | DateCreated | DateSortBy |
| 01 | Feb 18, 2018 | Feb 18, 2018 |
| 02 | Feb 20, 2018 | Feb 20, 2018 |
| 03 | Feb 21, 2018 | Feb 21, 2018 |
有没有办法在Up()
函数中完成此操作?如果我还原/重新实现这些更改,我宁愿不必编写另一个我必须记住运行的脚本。
答案 0 :(得分:1)
修改Up()方法以包含一个SQL语句,该语句设置现有行中的列值。
在AddColumn命令之后,添加:
Sql("UPDATE dbo.MyTable SET DateSortBy = DateCreated");
总之,这看起来像:
public override void Up()
{
AddColumn("dbo.MyTable", "DateSortBy", c => c.DateTimeOffset(nullable: false, precision: 7));
Sql("UPDATE dbo.MyTable SET DateSortBy = DateCreated");
}