EF Core 2.1.将自定义列添加到MigrationHistory表

Ali*_*kau 3 c# .net-core asp.net-core asp.net-core-2.1 entity-framework-core-2.1

我使用EF Core 2.1 Code-First.

SELECT * FROM [dbo].[__MigrationsHistory] 从2列返回表

  • MigrationId
  • 的ProductVersion

我正在寻找一种方法来添加一个列AppliedOn,该列将存储迁移实际应用于数据库的时间.

J.L*_*cos 6

你可以在SQL中做到这一点:

alter table [dbo].[__MigrationHistory] add AppliedOn Datetime default getdate()
Run Code Online (Sandbox Code Playgroud)

当EF将迁移应用于数据库时,它会在表中插入一行__MigrationHistory.此SQL脚本在列中添加AppliedOn默认值为getDate().插入行时,该列将包含此插入的当前日期时间.

或者,您可以使用EF Migration执行相同的操作:

通过添加到第一次迁移(或新迁移):

public partial class Intial : Migration
{
    protected override void Up(MigrationBuilder migrationBuilder)
    {
        migrationBuilder.AddColumn<DateTime>(
            name: "AppliedOnUtc",
            schema: "Conversations",
            table: "__MigrationsHistory",                
            defaultValueSql: "GETUTCDATE()"
        );
    }
     ....
}
Run Code Online (Sandbox Code Playgroud)