作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在 EF6 的实体中有一个枚举,在保存枚举时它作为一个字节存储在数据库中。
现在我想将 Enum 的一个值标记为 Obsolete,但是仍然会有数据使用这个值。它只是没有在代码中使用。
从技术上讲,我想在代码中删除这个值,但是您会如何处理旧数据?
迁移?
最佳答案
好的做法是遵循以下步骤:
如果因为数据库中还保留着旧值而无法完成数据迁移,那么我将按照以下步骤操作:
InvalidOperationException
带有明确的消息。 <remark>
的 XML 注释这将有助于开发人员了解正在发生的事情。注意我没有用 [Obsolete]
修饰枚举值属性,因为这个属性意味着两件事:
这两件事让使用版本 X 的开发人员可以清理他们的实际代码库(删除所有对过时枚举值的使用)并为版本 Y 做好准备(不需要任何更改,因为所有工作都在使用版本 X 时完成).你不能使用 [Obsolete]
属性,因为您说过旧数据仍将存在于数据库中,因此您可能需要在某处显示并且您没有遵循我所说的关于 [Obsolete]
的两件事属性。
关于.net - 存储在数据库中的过时枚举成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50831715/
我是一名优秀的程序员,十分优秀!