DevExpress XPO笔记5:数据验证

在实现数据添加或更新的时候,我们通常需要对新的数据进行验证,以保证数据的正确性,接下就来讲讲如何自定义验证。

  • 字符串空值验证
  • 整数验证

XPO中的数据交互,都是通过持久化对象来完成的,所以我们如果要对数据进行验证,就需要在持久化类中,做相应的判断。

首先我们需要构建异常抛出类,它继承自Exception类。用于数据验证不通过时抛出异常信息,然后通过调用基类的构造函数,组合要抛出的异常信息。

构造函数的参数为:当前更新的持久化对象和属性名称。

这里我们构建了两个异常类,分别验证字符串空值异常类与整数异常类。

    /// <summary>
    /// 字符串空值验证类
    /// </summary>
    public class RequiredPropertyValueMissing : Exception
    {
        public RequiredPropertyValueMissing(XPObject theObject, string propertyName):
            base(string.Format("The {0} property of the {1} object with id {2} must have a value",
                propertyName, theObject.GetType().Name, theObject.Oid))
        {
        }
    }
    /// <summary>
    /// 整数验证类
    /// </summary>
    public class RequiredPropertyValueDigit : Exception
    {
        public RequiredPropertyValueDigit(XPObject theObject, string propertyName) :
            base(string.Format("The {0} property of the {1} object with id {2} must have a Digit",
                propertyName, theObject.GetType().Name, theObject.Oid))
        {
        }
    }

然后我们需要在持久化类中判断属性的值,这里可以重写OnSaving(),此方法可以在数据保存的过程中被执行。

方法中可以利用C#自带的验证方法,或者利用正则表达式来验证,当在不满足验证条件时,我们实例化刚才的验证类,抛出异常信息。

这样就实现了XPO的数据自定义验证功能,而不需要将数据保存到数据库时,由数据库抛出异常了。

posted @ 2022-09-11 08:34  东经115  阅读(148)  评论(0编辑  收藏  举报