関連するエンティティとFormPartB
に依存するオブジェクトのビジネスルールがいくつかあります。FluentValidationは初めてです。Licensee
FormPartA
私がやりたいことは(私が思うに):
私の中で、エンティティとエンティティを1回
FormPartBValidator
取得してから、それらの関連オブジェクトの値を使用するための一連のルール(つまり述語)を設定します。Licensee
FormPartA
Must()
FormPartB
つまり、各ルール定義内で両方の外部エンティティを再度フェッチしたくありません。
私はいくつかの考えを持っていました:
(1)バリデーターのコンストラクターで、私のRuleFor
定義の上にあるこれらのエンティティを取得し、それらのエンティティをプライベートフィールドとして保存します。
public PartBValidator()
{
// Get my external data and save as private fields
RuleFor...
RuleFor...
}
また
(2)Validate()の呼び出し内でこれらのエンティティを取得し、それらのエンティティをプライベートフィールドとして保存します。
public override ValidationResult Validate(FormPartB instance)
{
// Get my external data and save as private fields
return base.Validate(instance);
}
でも
オプション(1)でFormPartBインスタンスにアクセスできないようです
オプション(2)では、Validate()が思ったように機能していないようです(つまり、のすべての検証で呼び出されないよう
FormPartB
です)。そして、「オブジェクトを取得してプライベートフィールドとして保存する」が正しい方法であるかどうかさえわかりません。
何かアドバイス?