我被训练在客户机上验证我的实体,但它不起作用。我有“必需”、range和stringlength属性。问题是,在客户端,唯一需要的是验证。在调用SubmitChanges之前,我在客户机上使用了àvalidate方法。但只针对必需的属性进行验证。然后调用SubmitChanges并引发异常,因为我仍然有范围或字符串长度验证错误。我正在使用TryValidateObject:可以吗?
请帮助:-)
发布于 2011-02-22 15:16:07
当您调用SubmitChanges时,它返回一个SubmitOperation,它有一个名为HasError的属性。如果这是真的,则意味着一个或多个实体出错。您还可以使用EntitiesInError属性返回包含任何错误的所有实体,包括validationErrors
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出现错误,您还可以取消它...
发布于 2011-02-23 15:39:00
无法进行验证,因为TryValidateObject仅执行“必需的”验证。我们必须将最后一个参数设置为true来验证所有验证类型(Range Stringlength ...)。当然,在SubmitChanges方法中进行验证也不是坏事,如果它已经可以在客户端进行验证,那么它就不会在服务器上进行验证。
https://stackoverflow.com/questions/5075105
复制相似问题