我在EF6的实体中有一个枚举,在保存枚举时它作为一个字节存储在数据库中。
现在我想将Enum的值标记为已过时,但仍会有使用此值的数据。它只是没有在代码中使用。
从技术上讲,我想在代码中删除这个值,但你会用旧数据做什么?
迁移?
答案 0 :(得分:1)
好的做法是遵循以下步骤:
如果由于旧值仍保留在数据库中而无法进行数据迁移,那么我将按照以下步骤操作:
InvalidOperationException
。 <remark>
放置一个XML注释,以帮助开发人员了解正在发生的事情。注意我没有用[Obsolete]
属性修饰枚举值,因为这个属性意味着两件事:
这两件事让开发人员使用版本X来清理他们的实际代码库(删除所有使用过时的枚举值)并为版本Y做好准备(不需要进行任何更改,因为使用版本X时所有工作都已完成)。您不能使用[Obsolete]
属性,因为您说旧数据仍然存在于数据库中,因此您可能需要在某处显示,而您没有遵循我所说的关于[Obsolete]
属性的两件事。 / p>