首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ria服务验证

ria服务验证
EN

Stack Overflow用户
提问于 2011-02-22 15:05:37
回答 2查看 360关注 0票数 0

我被训练在客户机上验证我的实体,但它不起作用。我有“必需”、range和stringlength属性。问题是,在客户端,唯一需要的是验证。在调用SubmitChanges之前,我在客户机上使用了àvalidate方法。但只针对必需的属性进行验证。然后调用SubmitChanges并引发异常,因为我仍然有范围或字符串长度验证错误。我正在使用TryValidateObject:可以吗?

请帮助:-)

EN

回答 2

Stack Overflow用户

发布于 2011-02-22 15:16:07

当您调用SubmitChanges时,它返回一个SubmitOperation,它有一个名为HasError的属性。如果这是真的,则意味着一个或多个实体出错。您还可以使用EntitiesInError属性返回包含任何错误的所有实体,包括validationErrors

代码语言:javascript
复制
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出现错误,您还可以取消它...

票数 0
EN

Stack Overflow用户

发布于 2011-02-23 15:39:00

无法进行验证,因为TryValidateObject仅执行“必需的”验证。我们必须将最后一个参数设置为true来验证所有验证类型(Range Stringlength ...)。当然,在SubmitChanges方法中进行验证也不是坏事,如果它已经可以在客户端进行验证,那么它就不会在服务器上进行验证。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5075105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档