C# WCF RIA服务验证:验证字段是否唯一,而不将其设为键

C# WCF RIA服务验证:验证字段是否唯一,而不将其设为键,c#,wcf,validation,ria,C#,Wcf,Validation,Ria,标题有点不言自明。我有一个实体已经定义了另一个键(必须保持这种方式),我需要验证某个字段是否唯一 我希望在元数据中使用验证器。但是我不能在那里使用DomainService,因为代码必须同时在服务器和客户端上运行。所以我不知道如何访问我的实体集来查看字段的值是否唯一 想法 谢谢 你可以这样做 string _Str=string.Empty; 公共字符串Str { 获取{return\u Str;} 设置 { if()//在此处添加ur代码以检查它是否唯一 { throw new

标题有点不言自明。我有一个实体已经定义了另一个键(必须保持这种方式),我需要验证某个字段是否唯一

我希望在元数据中使用
验证器
。但是我不能在那里使用
DomainService
,因为代码必须同时在服务器和客户端上运行。所以我不知道如何访问我的实体集来查看字段的值是否唯一

想法


谢谢

你可以这样做

string _Str=string.Empty; 公共字符串Str { 获取{return\u Str;}

设置 { if()//在此处添加ur代码以检查它是否唯一 {

        throw new Exception("Please Enter EmailId");
    }
  _Str = value; OnPropertyChanged("Str");

    }

这将是您的属性声明,您可以使其唯一

执行此操作的方法是在服务器端创建一个扩展名为
.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;
     }
}
公共类自定义验证
{
公共静态ValidationResult ValidateUnique(对象o,ValidationContext c)
{
#如果银光
//在客户端执行实际验证:
MyObject mo=c.ObjectInstance as mo;//我们正在检查的对象是MyObject类型
MyDS ctx=新的MyDS;//域服务
System.ServiceModel.DomainServices.Client.InvokeOperation
isUnique=//域服务中的某个调用操作;
isUnique.Completed+=(s,e)=>
{
如果(!isUnique.HasError&!isUnique.Value)
{
//返回误差;
mo.ValidationErrors.Add(错误);
}
};
#恩迪夫
//服务器端始终返回成功:
返回ValidationResult.Success;
}
}

Unique没有Unique?怎么可能?