2011-03-31 109 views
1

如果我有一个绑定到一个枚举的下拉列表,如下面,我采取选定的值,并更新我期待一个int的数据库记录,我会被认为是懒惰或忽略有一个枚举的点,如果我不先将int转换为相应的枚举值?跳过枚举铸造

我应该提到我正在使用遗留代码,他们没有使用类来模拟每个对象,他们只是直接从UI更新数据库中的记录。不需要告诉我为什么这是坏的。

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

这可以通过测试轻松搞定。 – Andrey 2011-03-31 17:52:06

+0

是什么?它是概念性的。你如何测试?请重新阅读我的问题。 – Joe 2011-03-31 18:20:30

回答

1

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

+0

这是不正确的答案。重要的是您使用的数据库访问API。 – Andrey 2011-03-31 19:52:28

+0

@Andrey你可能是对的,但你假设的东西超出了要求的范围。这本身没有错,但它不会使我的答案不正确。 – Sorax 2011-03-31 20:27:34

3

简答题;依靠。

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

如果您将它以纯粹的枚举形式传递给SqlParameter,ADO.NET将AFAIK持久化一个枚举值作为其支持号。

+0

这是正确和正确的答案 – Andrey 2011-03-31 19:53:18