2012-02-14 9 views
0

タイトルは多少説明します。私はすでに定義されている別のキー(そのようにしなければならない)を持つエンティティを持っており、特定のフィールドが一意であることを検証する必要があります。WCF RIA Services検証:フィールドをキーなしで一意であることを確認します

Validatorをメタデータに適用したいと考えています。しかし、コードはサーバーとクライアントの両方で実行する必要があるため、DomainServiceは使用できません。フィールドの値がユニークであるかどうかを確認するためにエンティティセットにどのようにアクセスできるかわかりません....

アイデア?

ありがとうございます!

+0

ユニークなユニーク?そんなことがあるものか? –

答えて

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; 
    } 
} 
0

Uはこの

文字列_STR = String.Emptyのようにそれを行うことができます。 公開ストリングStr { get {return _Str; }

()は//これはURプロパティの宣言となり、uはそれを作ることができる{

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

    } 

が 一意であるか否かを確認するために、ここでウルのコードを追加する場合 { を設定しますユニーク

関連する問題