проверка сервисов риа - PullRequest
       26

проверка сервисов риа

0 голосов
/ 22 февраля 2011

Я обучаюсь проверять свою сущность на клиенте, но она не работает. У меня есть «обязательные» и атрибуты range и stringlength. Проблема в том, что требуется только проверка на стороне клиента. У меня есть метод проверки на клиенте до Я звоню SubmitChanges. Но проверяется только обязательный атрибут. Затем вызывается SubmitChanges, и возникает исключение, потому что у меня все еще есть ошибки проверки диапазона или длины строки. Я использую TryValidateObject: это нормально?

Пожалуйста, помогите: -)

Ответы [ 2 ]

0 голосов
/ 23 февраля 2011

Проверка не может быть выполнена, поскольку TryValidateObject выполняет только проверку «Обязательно». Мы должны установить для последнего параметра значение true, чтобы проверить все типы проверки (Range Stringlength ...). Конечно, проверка в методе SubmitChanges также неплоха, и она не идет на проверку для проверки на сервере, если она уже может быть проверена на стороне клиента.

0 голосов
/ 22 февраля 2011

Когда вы вызываете SubmitChanges, он возвращает SubmitOperation, у которого есть свойство с именем HasError. Если это правда, то это означает, что один или несколько объектов находятся в состоянии Error. Вы также можете использовать свойство 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, если в нем есть ошибки ...

...