c# - 即使 Entity Framework 核心中的模型没有任何更新,DateTime 属性也会导致新的迁移更新

标签 c# entity-framework entity-framework-core

在 Entity Framework 中,如果我在包管理器控制台中运行命令“add-migration <name> ”,每次它都会使用属性日期时间的一些更新命令创建迁移。

型号:

public class TestDetailBase
    {
        public string TestTitle { get; set; }
        public int TotalTimeinMinutes { get; set; }
        public double PassMarkPercent { get; set; }
        public DateTime CreatedDate { get; set; }
        public DateTime UpdatedOn { get; set; }
    }

迁移代码:

public partial class newMigration : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.UpdateData(
                table: "TestDetails",
                keyColumn: "TestDetailId",
                keyValue: 1,
                columns: new[] { "CreatedDate", "UpdatedOn" },
                values: new object[] { new DateTime(2020, 3, 2, 8, 16, 33, 900, DateTimeKind.Utc).AddTicks(543), new DateTime(2020, 3, 2, 8, 16, 33, 900, DateTimeKind.Utc).AddTicks(543) });
        }

        protected override void Down(MigrationBuilder migrationBuilder)
        {
            migrationBuilder.UpdateData(
                table: "TestDetails",
                keyColumn: "TestDetailId",
                keyValue: 1,
                columns: new[] { "CreatedDate", "UpdatedOn" },
                values: new object[] { new DateTime(2020, 3, 2, 8, 16, 19, 148, DateTimeKind.Utc).AddTicks(4304), new DateTime(2020, 3, 2, 8, 16, 19, 148, DateTimeKind.Utc).AddTicks(4304) });
        }
    }

我不想更新在先前迁移中已作为种子数据插入的记录。但是如果我创建新的迁移,上述附加迁移代码将自动注入(inject)到迁移中。

最佳答案

当您插入种子数据时,不要使用 DateTime.Now 作为初始日期时间属性。 可能在您的 EntityConfiguration 文件中,您使用 HasData 方法插入此数据。

关于c# - 即使 Entity Framework 核心中的模型没有任何更新,DateTime 属性也会导致新的迁移更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60484971/

相关文章:

c# - Entity Framework Core SQLite - 在测试中模拟预加载

postgresql - 如何在模型中自动包含多个导航?

azure - ASP.NET Core 2.2 - 密码重置在 Azure 上不起作用( token 无效)

c# - StreamWriter 不附加到文件,而是在不同的目录中创建一个新文件

c# - C# : using -= operator by events? 是什么意思

Mysql EF5存储生成的模式标识不起作用

c# - DbContext.SaveChangesAsync 异常处理

java - Java AES/CBC/PKCS5Padding 的 C# 加密/解密

c# - 使用 lambda 查找所有实体

asp.net-mvc - 如何使用代码优先方法在 Entity Framework 7中种子存储过程?