在 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/