ef怎么限制double类型字段范围在(0,1】之间

ef怎么限制double类型字段范围在(0,1】之间

问题描述:

我们的要求是用code first建一个表里面有折扣字段是double类型的,要求这个double的范围只能在(0,1】之间

就是 public double A{get; set;},我在网上搜了半天也找不到、浮点型也不能用range(0,1)这种方法,有没有类似于check约束一样的方法实现。或者是使用【key】这种attribute实现。有没有大佬告诉一下、多谢了

https://www.codeproject.com/Articles/1058402/Validation-attributes-in-Code-First-2这有个例子

[AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
public class OldEnoughValidationAttribute : ValidationAttribute
{
    public int LimitAge { get; set; }
    public OldEnoughValidationAttribute(int limitAge)
    {
        LimitAge = limitAge;
    }
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        int val = (int)value;

        if (val >= LimitAge)
            return ValidationResult.Success;
        else
            return new ValidationResult(ErrorMessageString);
    }
}
public class Customer 
{
    [OldEnoughValidation(20, ErrorMessage = "You're not old enough")]
    public int Age { get; set; 
}