【发布时间】:2012-04-21 20:26:32
【问题描述】:
我的枚举值为 None,这意味着尚未选择一个值。绝不应将任何内容保存到数据库中。
enum MyEnum
{
None = 0,
SomeValue = 1,
...
}
有没有一种方法可以使用数据注释正则表达式,如果选择 None 值,验证应该失败?
【问题讨论】:
标签: c# regex c#-4.0 data-annotations
我的枚举值为 None,这意味着尚未选择一个值。绝不应将任何内容保存到数据库中。
enum MyEnum
{
None = 0,
SomeValue = 1,
...
}
有没有一种方法可以使用数据注释正则表达式,如果选择 None 值,验证应该失败?
【问题讨论】:
标签: c# regex c#-4.0 data-annotations
使用[Range(SomeValue, LastValue)] 约束将有更好的机会。
【讨论】:
[EnumDataType(typeof(MyEnum))] - 如果您的枚举中有间隙,这可能是必要的,例如 Value1=1, Value2= 2, Value3=4,Value4=8 等等,并且您要确保只使用有效的枚举值。
如果您的所有枚举都将 None 定义为 0,我会很想执行以下操作:
[RegularExpression("[1-9][0-9]*", ErrorMessage = "None should never be saved to database.")]
public MyEnum val { get; set; }
【讨论】: