FluentMigrator的默认值设置为另一列的值

时间:2018-08-17 14:16:31

标签: c# fluent-migrator

我正在尝试将默认值设置为另一列的当前值。 FluentMigrator有什么方法可以轻松地做到这一点吗?

public override void Up()
{
    Alter.Table(NomTable.VenteMetadata).AddColumn("Column").AsString()
    .NotNullable().WithDefaultValue("??");
}

public override void Down()
{
    Delete.Column("Column").FromTable(NomTable.VenteMetadata);
}

1 个答案:

答案 0 :(得分:0)

不,您不能使用WithDefaultValue来做到这一点。如果您使用的是Microsoft SQL Server,则可以创建一个插入触发器来实现所需的目标:

Execute.Sql(@"
    CREATE TRIGGER VenteMetadata_AfterInsert_TRG 
    ON VenteMetadata 
    AFTER INSERT
    AS
    UPDATE VenteMetadata t
    SET t.Column = t.OtherColumn
    FROM Inserted i
    WHERE t.Id = i.Id
");