您可以使用一个 CustomValidation 来解决您的问题,我认为这是最好的方法,因为您可能会或可能不会在客户端加载所有记录,如果您没有加载所有员工,您需要转到DB检查是否有一个标题beeing输入...
基本上是这样的:
首先创建负责员工验证的类
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;
}
在 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
这是 Jeff Handley 关于 WCF 验证的另一篇写得很好的文章:
http://jeffhandley.com/archive/2010/09/25/RiaServicesCustomValidationMethods.aspx