在LightSwitch中,数据验证分为属性验证,实体验证,界面验证。

        属性验证是在数据实体表创建时,对各个属性加以验证,在vsls中,对字段的验证是内置的,可以通过选中实体属性,在vs的属性对话框中有可视化设置。内置的验证大体分为下面这些类型:Is Required必需字段,Maximum Value最大值,Minimun Value最小值,Maximun Length最大长度,Precision精度,Scale小数位比例,这些验证规则是对应不同的数据类型有不同的显示。比如:只有为数值类型时,才有Maximun Value和Minimun Value,只有为可以是小数的数值类型时才有Precision和Scale。
 

LightSwitch 中的验证_第1张图片

对于更复杂的验证,可以通过写代码来验证,可以选择属性,“Write Code”或上图的“Custom Validation”,都可以导航到代码的验证。
   partial void 属性名_Validate( EntityValidationResultsBuilder results)
   {          
   }
可以通过 “this.属性名”来获得当前的属性值,可以进行正则验证,也可以进行值验证,如果不符合规则,可以用该方法参数results的方法Add方法提示错误,如下代码:
    Regex regex = new Regex(@"^\d{4}$");
    if (!regex.IsMatch(this.属性))
    {
        results.AddPropertyError("要求四位数字!");
}
        results提供了四个方法,两个添加错误的,两个添加结果的,错误和结果分为属性错误和实体错误,属性错误是属性赋完值后马上验证,实体错误是实体整体赋完值后验证。
          关于实体验证,是当整体实体提交时的验证,主要是验证实体的完整性。
         界面验证,是实体间的验证,可以限制实体间的关系。
          实体验证和界面验证都是用代码来完成的,并且后者总是包含前者的验证。