标题有点自我解释。我有一个已经定义了另一个密钥的实体(必须保持这种方式),我需要验证某个字段是否唯一。
我希望在元数据中使用Validator
。但我不能使用DomainService
,因为代码必须在服务器和客户端上运行。所以我不知道如何访问我的实体集以查看该字段的值是否唯一....
想法?
谢谢!
答案 0 :(得分:0)
你可以这样做吗
string _Str = string.Empty; public string Str { 得到{return _Str; }
组 { if()//在这里添加你的代码以检查它是否是唯一的 {
throw new Exception("Please Enter EmailId"); } _Str = value; OnPropertyChanged("Str"); }
这将是ur属性的声明,你可以使它独一无二p>
答案 1 :(得分:0)
执行此操作的方法是在服务器端创建扩展名为.shared.cs
的文件。将验证器放在:
public class CustomValidation
{
public static ValidationResult ValidateUnique(object o, ValidationContext c)
{
#if SILVERLIGHT
//Do actual validation client-side:
MyObject mo = c.ObjectInstance as mo; //Object we are checking is type MyObject
MyDS ctx = new MyDS; //Domain Service
System.ServiceModel.DomainServices.Client.InvokeOperation<bool>
isUnique = //some invoke operation in Domain Service;
isUnique .Completed += (s, e) =>
{
if (!isUnique .HasError && !isUnique.Value)
{
//return error;
mo.ValidationErrors.Add(error);
}
};
#endif
//Server-side always returns success:
return ValidationResult.Success;
}
}