跳过枚举铸造

时间:2011-03-31 17:49:10

标签: .net enums

如果我有一个下拉列表绑定到枚举,例如下面的,并且我采用所选的值并更新我期望int的数据库记录,我会被认为是懒惰或忽略了如果我不首先将int转换为相应的枚举值,那么枚举?

我应该提一下,我正在使用遗留代码,他们没有使用类来为每个对象建模,他们只是直接从UI更新数据库中的记录。没必要告诉我为什么这很糟糕。

public enum Schedule
{
        None = 0,
        Hourly = 1,
        Daily = 2,
        Weekly = 3,
        Monthly = 4,
}

2 个答案:

答案 0 :(得分:3)

简短回答;取决于。

更长的答案;取决于您当前的DAO如何持久存取并检索枚举。默认情况下,NHibernate会尝试持久化枚举的ToString();它在实际数据库中的可读性比数值更高,你必须明确说明你希望它作为数字持久存在。

ADO.NET将AFAIK保留枚举值作为其支持号码,如果您将其未经过处理的Enum表单传递给SqlParameter。

答案 1 :(得分:1)

我不认为这是懒惰的。 enum的名称对我们有利。数据库只关心它的价值,这就是你给它的价值。