【发布时间】:2021-09-03 22:33:45
【问题描述】:
我们在我们的一个 ASP.NET MVC Core 应用程序中使用 Code First 方法。我们有一个包含大量数据的表,我们希望将其中一列的数据类型从 string 更改为 int。
该列仅存储两个整数,即“1”和“2”。我们将如何在不影响数据的情况下使用包管理器控制台命令(或类似的命令)来完成。
因此,在以下模型中,我们需要将 OrderType 从 string 更改为 int,而不影响 SQL Server 数据库中的现有数据:
public class Order
{
public int OrderId { set; get; }
public string OrderType { set; get; }
public int OrderYear { set; get; }
public string OrderLoc { set; get; }
...
...
}
更新
我们正在使用带有最新更新的 VS2015。以下可能是对我们问题的更好解释:
在 ASP.NET Core - Code First 模型中,有时您可以对模型进行某些更改并运行迁移命令以使更改与最初使用 Code First 方法创建的数据库保持同步。我正在寻找这样的迁移命令,因此如果模型属性的数据类型更改为兼容类型,则数据库表中相应列中的现有数据保持不变。请注意,在我们的例子中,由于列 OrdererType 将值 1 和 2 保存为字符串,因此现有数据类型 string 与数据类型 int 兼容。
【问题讨论】:
-
“不影响现有数据”到底是什么意思?您不能更改数据库列的类型并将该列的值单独保留在现有行中。
-
@CodeCaster 我添加了一个新的更新部分,可以回答您的问题。我还注意到您对我的问题的编辑可能使我的问题有所改善。
标签: asp.net-core asp.net-core-mvc