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; }