我想弄清楚哪种方法是"正确的".我在我的数据库中有一堆查找表,并希望在这些值之上放置一个枚举,因此,在编码时,它更容易阅读(以及不使用硬编码值).
我想知道是否应该根据现有的枚举生成我的表值,或者我是否应该从表的值生成枚举.
编辑
根据前几条评论,这里有一些澄清:
值的变化频率可能相当频繁,因为它们意图是相当动态的.话虽如此,在添加任何一种方法之前都需要编译,因为需要更新枚举以公开新值.
这种需求的主要原因是因为我们不希望将人们绑定到特定的值列表,我们希望应用程序能够在需要时添加新条目.
在过去,我们已经从枚举中生成了数据,但我是第二个猜测自己
我们通常从数据库生成枚举。我们使用CodeSmith,它允许我们创建可以根据需要轻松重新生成枚举的项目文件。
我们偶尔会采用另一种方式,通常是出于报告目的(当现有枚举值保留时)。
当然,我们也有一些枚举,它们的值永远不会持久。
一般来说,从数据库生成枚举的唯一原因是代码是否需要根据它们做出决策。如果您只想填充 ComboBox 并保留用户的选择,请不要生成枚举。
显然,根据值可以更改的枚举(或字符串)做出决策是脆弱的。您可能需要考虑在数据库架构中包含到期日期(或“起始日期”和“截止日期”),以便不会删除现有值。填充 UI 选择器时过滤过期值。这也使得更容易实现引用完整性。
与 C# 中一样,您必须注意枚举值可能会超出预期范围。在default您的switch.
我们提出了用于创建缓存查找列表的帮助器类,使这些列表更易于使用。
我并不提倡走这条路。如果你必须这样做,我们就是这样做的。
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |