.net - 处理 Entity Framework 5 中的枚举更改

标签 .net entity-framework enums migration entity-framework-5

this question ,我发现 Entity Framework 迁移不处理枚举更改。事实上,枚举更改甚至不会导致模型更改错误,因此您可以随意更改枚举而无需控制。

导致不同 int 值的枚举更改(例如订单更改或删除)可以有效地使数据库数据无效,因为存储的整数的含义现在是错误的。

为了使迁移工作,您必须手动执行更改更改的枚举值的自定义 SQL。

问题是,开发人员必须记住这样做,如果存在疏忽,则可能会发生有效的数据损坏。

有人如何对此进行检查?如果枚举更改,是否有可能抛出模型更改错误或类似的错误?

最佳答案

当您将枚举移到不同的项目以用作库时,.Net 中存在与枚举类似的问题:

http://bytes.com/topic/c-sharp/answers/271483-q-why-casting-enum#post1086722

试试看——一般来说,枚举非常脆弱。答案是始终为您的枚举分配一个明确的值,以防止这两个问题。这使您仍然可以利用它们的核心值(value)(清晰的名称而不是魔数(Magic Number)和更多的方法参数中的类型安全性),但可以防止您悄悄地破坏一切。

您可以通过正则表达式使用代码审查或提交后 Hook 来强制执行此策略。

关于.net - 处理 Entity Framework 5 中的枚举更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942078/

相关文章:

.net - EWS 托管 API 获取所有电子邮件项目错误

java - 如何从Java中的字符串值中获取枚举值

python - 在枚举构造函数中使用 super() 时出现 NameError

c++ - 将整数而不是枚举类型传递给函数

c# - 如何完全禁用已签名的程序集?

c# - 如何从 C# 中的图形对象获取位图/图像?

c# - 使用 MySql 在 Entity Framework 6 中延迟加载数据不起作用

c# - EF 6.1 唯一可空索引

c# - LIKE 比较 Entity Framework 中的列表

.net - 仅通过复制 Bin 目录来部署控制台应用程序