#validation #silverlight-4.0 #wcf-ria-services
#проверка #silverlight-4.0 #wcf-ria-services
Вопрос:
я разрабатываю образец приложения, используя ссылку ниже.
http://code.msdn.microsoft.com/Getting-Started-WCF-RIA-1469cbe2 .
Это бизнес-приложение silverlight, использующее службы wcf ria, как указано в ссылке.
в примере при добавлении нового сотрудника, если поле «Заголовок» сотрудника уникально в базе данных, и пользователь пытается ввести дублирующийся заголовок, как я могу это предотвратить? я имею в виду, что если ввести два одинаковых «заголовка», он должен пройти правильную проверку. Как я могу это сделать в текущем сценарии? я добавляю нового сотрудника, используя дочернее окно…
может ли кто-нибудь помочь?
Ответ №1:
Вы можете решить свою проблему, используя одну пользовательскую проверку, и я думаю, что это лучший способ, поскольку у вас могут быть загружены или не загружены все записи на стороне клиента, и в случае, если у вас загружены не все сотрудники, вам нужно перейти в базу данных, чтобы проверить, есть ли она с введенным заголовком…
В основном это будет выглядеть так:
Сначала создайте класс, который будет отвечать за проверку сотрудников
public class EmployeeValidationRules
{
}
затем метод, который фактически выполнит проверку:
public static ValidationResult ValidateTitle(string title, ValidationContext context)
{
AdventureWorks_DataEntities objectContext = new AdventureWorks_DataEntities();
Employee employee = context.ObjectInstance as Employee ;
if (objectContext.Emplyees.Any(e => e.Title == employee.Title))
{
return new ValidationResult("Title Allready Exists", new string[] { "Title" });
}
return ValidationResult.Success;
}
В метаданных, сгенерированных вашими domainservices в классе Employee, найдите свойство title, и вы должны добавить этот тег:
[CustomValidation(typeof(EmployeeValidationRules), "ValidateTitle")]
public string Title{ get; set; }
Примечание: Все это должно быть сделано на стороне сервера…
Вы можете найти более подробную информацию о проверке WCF здесь:
http://www.silverlightshow.net/items/WCF-RIA-Services-Part-6-Validating-Data.aspx
Вот еще одна очень хорошо написанная статья Джеффа Хэндли о проверке WCF:
http://jeffhandley.com/archive/2010/09/25/RiaServicesCustomValidationMethods.aspx