Sql server EF核心迁移问题-更新数据并重命名列

Sql server EF核心迁移问题-更新数据并重命名列,sql-server,entity-framework-core,Sql Server,Entity Framework Core,我有这个迁移 migrationBuilder.Sql("UPDATE EmailMessages SET ReceiveDATE = getutcdate() WHERE ReceiveDate IS NULL"); migrationBuilder.RenameColumn( name: "ReceiveDate", table: "EmailMessages", newName:

我有这个迁移

  migrationBuilder.Sql("UPDATE EmailMessages SET ReceiveDATE = getutcdate() WHERE ReceiveDate IS NULL");

  migrationBuilder.RenameColumn(
       name: "ReceiveDate",
       table: "EmailMessages",
       newName: "Date");

  migrationBuilder.AlterColumn<DateTime>(
       name: "Date",
       table: "EmailMessages",
       nullable: false);
我检查了迁移历史记录表,这不应该执行,因为有记录。我尝试在本地运行该记录(迁移历史记录表中也有记录),但令我惊讶的是,它给出了错误

味精207,16级,状态1,第3行
列名“ReceiveDate”无效

因此,这个错误似乎告诉我们,即使列未被执行,它也不存在(我甚至在
BEGIN
之后添加了PRINT语句以确认这一点)。但我可以执行整个迁移任意次数。它被组织在那些
中,如果不存在的话。。。转到
批次,除上述批次外,所有批次都可以正常运行

我做错什么了吗?我是EF Core的新手

IF NOT EXISTS(SELECT * FROM [__EFMigrationsHistory] WHERE [MigrationId] = N'20200908131452_RefactorEmailDate')
BEGIN
    UPDATE EmailMessages SET ReceiveDATE = getutcdate() WHERE ReceiveDate IS NULL
END;

GO