首页 > 解决方案 > 不更改模型的实体框架迁移

问题描述

我想知道为不一定有模型更改但模型上的枚举属性已更改的场景创建迁移是否有意义。我正在使用.NET 4.6.2Code-First Entity Framework

我有以下 EF 跟踪的日志模型:

[Table("Logs")]
public class Log
{
    public int Id { get; set; }
    public DateTime Timestamp { get; set; }
    public LogType Type { get; set; } 
}

LogType枚举目前有大约 40 个值,其中 13 个已过时或弃用。我正在经历删除对过时/弃用枚举值的引用的过程。

因此,LogType枚举的值正在改变。例如,LogType.ConnectionTimeout以前有 value 16,但现在有 value 3

在我的数据库 (MSSQL) 中,该Type列存储为 int,并且我编写了删除所有具有过时/弃用枚举值的条目的 SQL,并且我还编写了更新其他枚举值以匹配它们的新值的 SQL是(例如,使用我之前的示例将 16 更改为 3 Type.ConnectionTimeout)。

我的问题是:将那个 SQL 放在能够被Up()'d 和Down()'d 的迁移中是一个好习惯吗?我的另一个问题是,这可能吗?或者是否需要进行实际的模型更改才能创建迁移?我希望能够在版本控制中跟踪和存储此 SQL,以及Up()将来Down()如果需要的话。

谢谢,如果这是重复的,请提前道歉——我无法通过搜索找到类似的问题。

标签: c#entity-frameworkentity-framework-migrations

解决方案


推荐阅读