2012-04-09 34 views
3

我的枚舉值爲None,這意味着尚未選擇一個值。永遠不應該保存到數據庫。使用Enum的RegularExpression屬性

enum MyEnum 
{ 
    None = 0, 
    SomeValue = 1, 
... 
} 

有沒有一種方法可以使用數據註釋RegularExpression以驗證失敗的方式,如果選擇None值?

回答

2

你有一個[Range(SomeValue, LastValue)]約束一個更好的機會。

+0

Range取得了訣竅。有趣的是[RegularExpression(「[1-5]」)]不起作用,似乎該範圍能夠以某種方式將值轉換爲int,而RegularExpression沒有。 – Goran 2012-04-09 14:40:18

+0

您還可以通過添加此屬性來確保該值存在於枚舉中:'[EnumDataType(typeof(MyEnum))]' - 如果您的枚舉中有空位,例如Value1 = 1,Value2 = 2,Value3 = 4,Value4 = 8等,並且您希望確保只使用有效的枚舉值。 – demoncodemonkey 2014-03-24 14:20:34

0

我會被誘惑做到以下幾點,如果你所有的枚舉定義無以0:

[RegularExpression("[1-9][0-9]*", ErrorMessage = "None should never be saved to database.")] 
public MyEnum val { get; set; } 
+0

不,它不起作用,[RegularExpression(「[1-5]」)]也沒有,似乎將枚舉值轉換爲int有問題。然而,範圍確實有效。 – Goran 2012-04-09 14:41:28

相關問題