【问题标题】:ria services validationria 服务验证
【发布时间】:2011-02-22 07:05:37
【问题描述】:
我正在接受培训,可以在客户端上验证我的实体,但它不起作用。我有“必需”以及范围和字符串长度属性。问题是只需要在客户端进行验证。我之前在客户端上有 à validate 方法
我打电话给 SubmitChanges。但只有必需的属性会被验证。然后调用 SubmitChanges 并引发异常,因为我仍然有范围或字符串长度验证错误。我正在使用 TryValidateObject:可以吗?
请帮忙:-)
【问题讨论】:
标签:
validation
service
ria
【解决方案1】:
当您调用 SubmitChanges 时,它会返回一个具有称为 HasError 的属性的 SubmitOperation。如果这是真的,则意味着一个或多个实体出现错误。您还可以使用 EntitiesInError 属性,该属性将带您返回所有带有任何错误的实体,包括验证错误
TestDomainContext tdc = new TestDomainContext();
SubmitOperation so = tdc.SubmitChanges();
if (so.HasError)
{
foreach (Entity entity in so.EntitiesInError)
{
if (entity.ValidationErrors.Count() > 0)
//Loop through validation errors to see what property is in error
}
so.Cancel();
}
与执行 TryValidate 相比,这使您可以更好地控制错误。如果有错误,您也可以取消 SubmitOperation...
【解决方案2】:
验证无法进行,因为 TryValidateObject 仅执行“必需”验证。我们必须将最后一个参数设置为 true 以验证所有验证类型(Range Stringlength ...)。当然,在 SubmitChanges 方法中进行验证也不错,如果它已经可以在客户端进行验证,它就不会在服务器上进行验证。