2017-08-18 10 views
0

コマンド検証にSpecExpressを使用しています(コマンド検証でコントローラに入る前にコマンドが検証されています)。ですか?

単純なケースでは、長さを検証しました。次のようなものです:

コマンドプロパティを確認してください。 「ユーザー名」は、それはリポジトリを使用して、私のデータベースまたはないこのシナリオの であり、データベース内のデータかどうかをチェックし、 ならば、失敗や成功が存在します。

this.Check(ur => ur.UserName).Required().Expect(
      (x, y) => 
       { 
        var isExists = userService.isExists(x.UserName); 
        return !isExists; 
       }, 
      "User already exist"); 

私の質問は、コマンド検証の中でデータ検証を行うのがベストプラクティスですか?
または私はちょうどコントローラやサービスのように、従来の方法でそれを行うには、我々は、ユーザーがデータベースにあるか、そして、次のステップやスロー例外に移動しないで確認してください。

答えて

1

私たち(私のチーム)はコマンド検証時に通常の検証チェックを行い、すべてのタイプのデータ検証はコントローラまたはサービスに送られます。