我在数据库(SQL)上有一些查找表,用于引用完整性。这些相同的表在代码中使用枚举表示,因为它周围有业务逻辑。当本地化成为问题时,会向每个实体添加本地化表(包含可本地化的字段)。现在正在翻译枚举(通过资源文件),但每个查找表也存在一个本地化表。
我希望得到一些关于如何模拟这个枚举/查找表关系的一些消息,记住(实体框架5)“查找表”现在有子表关联但目的仍然是代码中的枚举..
答案 0 :(得分:0)
[房屋清洁工作] 从那时起我一直在处理这个问题的方式
如果枚举不影响任何业务决策,那么我通常没有枚举。
如果它是一个驱动某种业务决策的枚举,则通常将其设为标志枚举,并且数据库条目将包含标志枚举值。通常会有一个实际的查找表,其中这些值与标签配对,有时还会有一些元数据。
然后我将使用某种缓存机制提前(或延迟)加载那些查找表,以将所述枚举转换为UI中的适当标签。
当我拥有某种元数据时,我要么创建一个具有与枚举相关联的所有数据的类,要么创建一个静态类,该类具有负责扩展所述元数据的枚举的扩展方法。
例如:
枚举数{一,二,三}
Number.One.GetLabel(); Number.One.IsEven()
也许会保留一个静态字段,以便在首次检索后缓存该信息。