在 EntityFramework 迁移期间将现有值从一种类型转换为另一种类型?

Convert existing value from one type to another during EntityFramework migration?

我有:

    [Required]
    public string Proportion { get; set; }

这是一个字符串 属性。我必须应用一些简单的逻辑将其转换为整数。 所以我的目标是 1) 保存现有比例,2) 删除字符串列并创建新的 int 列并保存并转换为 int 值。 可能吗?

如果我理解正确,您可以从模型中删除您的 Proportion 实体,而不是使用 update-database -force 迁移您的数据库,这将从您的数据库中删除该列。而不是将 Proportion 实体重新创建为 int 并再次迁移数据库。

现在您将拥有与 Proportion 实体的 int 类型相对应的模型和数据库。当然,您将不得不使用另一个变量来存储字符串值,而不是将其解析为 int 并将其存储到 Proportion.

在你的问题中,你用复数形式谈论 values。在我的回答中,我提到了 int 属性 ,它只得到一个整数。如果你有像 width*height 这样的东西,我建议解析成两个单独的属性。