c# - 不更改模型的实体框架迁移
问题描述
我想知道为不一定有模型更改但模型上的枚举属性已更改的场景创建迁移是否有意义。我正在使用.NET 4.6.2
和Code-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()
如果需要的话。
谢谢,如果这是重复的,请提前道歉——我无法通过搜索找到类似的问题。
解决方案
推荐阅读
- r - 包 'ggplot2' 不适用于 R 版本 3.5.1
- javascript - 快递路由器不能等待承诺解决吗?
- react-native - 如何在 react native 中使用 redux
- r - 用R中的模式替换缺失值
- html - 无论图像的原始大小如何,如何使图像与其容器(卡)成比例地适应它?
- javascript - React Native - 在导航期间传递给组件的参数在稍后再次导航到该组件时保留在该组件中
- r - r 带有置信带和标签数据点的线图
- sql - sql添加行提取
- firebase - 有没有办法限制 Firebase 的 Blaze 计划?
- c - x86 程序集(英特尔风格)中的相对寻址,是相对于“插槽”的顶部还是底部给出的偏移量?