我有一个关于使用数据库中的数据进行操作的问题。 我有这样的表:
问题是,我应该在Status
表的Name属性中保留哪种数据?
我有两种可能性:
strings
,例如:'正常','雇用','禁止','主持人'等。ints
,对应于我的项目中的Enum
类型,还包含所有“正常”,“已聘用”等。有什么规定吗?我在一个项目中看到了第二个选项(enum
),并且作者证明了他的选择,事实上,他更容易将这些int解析为托管代码,只需使用这一行:
(StatusEnum)statusInt;
在我看来,第一个选项(strings
)更专业,因为数据库更独立。但实际上我不知道如何争论,因为它只会给我带来一个问题:我必须用两行(Enum type
)将这些字符串解析为托管Enum.TryParse...
。
有人可以,请给我他们的意见吗?
答案 0 :(得分:1)
如果你使用枚举,则不需要特殊的表格。您只需在User
表中使用状态整数值,并将其直接映射到EF设计器中的枚举。如果您的Status
是实体,则相关表格很有意义。是否可以更改,您可以在运行时添加或删除?如果是,请将其作为包含字符串名称的表。如果没有,请将它作为User
表中的枚举字段。