【问题标题】:synch enumeration with static data from a database将枚举与数据库中的静态数据同步
【发布时间】:2008-11-27 03:01:15
【问题描述】:

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

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

你只记得在向数据库添加新代码时添加到枚举吗?

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

还是别的什么?

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

希望有任何建议。

谢谢

【问题讨论】:

    标签: c# enums enumeration


    【解决方案1】:

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

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

    从不同的角度来看,一个更有趣的方法是使用 SQL 视图来模拟数据库中的枚举。通过这种方式,您可以将数据库与您的 C#(或其他)代码同步。您可以在 Oleg Sych 的博客 here 上找到一篇很棒的帖子。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-18
        • 2014-06-01
        • 2013-01-04
        • 1970-01-01
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多