我有一张桌子,我们称之为对象。它有一组预定义的记录,如下所示:
ObjectId ObjectName
1 Salmon
2 Trout
3 Seabass
4 Shark
等。
所以,我想以某种方式实现枚举。但是最好的方法是在数据库中为它创建表格,还是在CommonEnums代码隐藏文件中的应用程序逻辑中实现它?
答案 0 :(得分:6)
我们在两个地方添加它们,我们使用代码生成器来保持值的同步。
主要值在Enum中,但模板会自动生成更新数据库的脚本
我们还向实体添加一个属性以公开枚举属性而不是保存到DB的整数
编辑:添加如何操作的示例(在VB.NET中:
<EnumDbTableInfo("TableName", "keyColumn", "descColumn")> _
Public Enum CasoImportacion As Short
<Description("")> _
Normal = 0
<Description("The First Description")> _
FirstRealValue = 1
<Description("A second one")> _
AnotherValue = 2
<Description("Third Description")> _
LastValue = 3
End Enum
稍后,EnumHelper类将获取具有EnumDbTableInfo属性的类并生成更新DB的脚本
最好的问候
答案 1 :(得分:0)
我通常在数据库中使用外键(查找)表,如果我需要连接表来获取代码的文本描述以便显示给用户,比如报告或临时查询等。如果该值严格是内部的 - 也就是说,从不向任何人显示 - 或仅在我可以根据需要翻译它的代码中使用,我只是在字段上设置一个约束并跳过外键表。