0

我有一个交付状态代码的枚举。当我将交付数据保存到数据库时,它们会使用外键存储到包含相同数据(即相同的交付代码)的表中

使枚举与数据库中的数据保持同步的最佳策略是什么?

您是否只记得在将新代码添加到数据库时添加到枚举中?

或者在应用程序启动时将数据加载到字典中?并使用字典而不是枚举?虽然这意味着我没有数据的强类型表示 - 这是我绝对想要的。

或者是其他东西?

数据不是很不稳定,但每个蓝月亮都会添加一次新代码

将不胜感激任何建议。

谢谢

4

2 回答 2

4

我在 Visual Studio 2008 中使用 T4 模板。这样,我可以在构建期间强制生成代码,并为我想要的每个表生成枚举。

Hilton Giesenow's sample是一个很好的起点,我相信它可以准确回答您的问题。

从不同的角度来看,一种更有趣的方法是使用 SQL 视图来模拟数据库中的枚举。通过这种方式,您可以将数据库与您的 C#(或其他)代码同步。您可以在 Oleg Sych 的博客上找到一篇关于它的精彩文章,请点击此处

于 2008-11-28T06:58:07.650 回答
0

当我在代码中使用枚举时,我通常将格式化的名称作为 varchar 存储在数据库中,而不是在数据库中保留一个枚举值表。我意识到这并不像人们希望的那样规范化,但我相信这比试图保持数据库和我的枚举同步要好。所需要的只是在插入/更新时格式化并在选择时解析以将值重新组合回枚举中。

只有当我相信枚举将被修复时,我才会这样做——尽管我也很少进行更新。如果我相信数据很可能会定期更新,我不会使用枚举,而是会在数据库中有一个单独的表,其中包含外键引用。

于 2008-11-27T03:39:43.230 回答