2

NHibernate.Validator で使用される検証方法 (businbess ルールの検証用) を定義することは可能ですか? EntLib に存在するものを意味します。

[HasSelfValidation()]
public class SomeClass
{
    //...

    [SelfValidation()]
    public virtual void DoValidate(ValidationResults results)
    {
        //...
    }
}
4

2 に答える 2

3

はい、できますが、検証エラーが発生した場合に、違反したルールに関する詳細情報を伝える方法がありません。

私の知る限り、NHibernate Validator は、テキスト メッセージ、クラスの名前、および (プロパティ レベルの検証属性の場合は) 違反したプロパティの名前を指定する機能のみを提供します。

属性が(または)を指すようにHasSelfValidationAttribute実装する場合、クラスの単純な名前以外に通信する方法はありません。これは、「実際のビジネス ルール」を検証する必要がある場合、おそらく情報が少なすぎるでしょう。IRuleArgsIValidatorIInitializableValidatorstring Message

NHibernate Validator は、クラスのプロパティをスコープとする単純な検証には最適ですが、より複雑な検証を行う必要がある場合には不十分です。

于 2009-04-28T17:43:37.460 に答える
0

RulesEngineプロジェクトをご覧ください。ビジネスオブジェクトは、属性で装飾したり、インターフェイスを実装したりする必要はありません...

于 2011-09-08T22:26:23.713 に答える