c# - 英孚核心 2.1。将自定义列添加到 MigrationHistory 表

标签 c# asp.net-core .net-core asp.net-core-2.1 entity-framework-core-2.1

我使用 EF Core 2.1 Code-First。

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

  • 迁移编号
  • 产品版本

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

最佳答案

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

alter table [dbo].[__MigrationHistory] add AppliedOn Datetime default getdate()

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

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

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

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

关于c# - 英孚核心 2.1。将自定义列添加到 MigrationHistory 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50626966/

相关文章:

c# - 使用 LINQ to SQL 搜索字符串内的列表对象

c# - 在客户环境中调试崩溃的后续步骤

c# - 重定向到页面但特定选项卡

c# - Monotouch Binding 项目构建错误

docker - 当标签:1.1失败时,为什么:latest aspnet core docker image运行?

c# - 在 SQL Server 中使用 Entity Framework 核心 3.1 时指定列类型

C# 调用 DataLakeDirectoryClient.CreateSubDirectoryAsync 创建子目录和同名的零字节文件

dependency-injection - ASP.NET Core 内置 DI 系统中的 DI Modules

c# - 为 HTTPS 配置 ASP.NET Core 2.0 Kestrel

visual-studio - Nuget 无法更新 .NET Core 项目