2009-04-28 9 views
2

NHibernate.Validatorで使用される検証方法(businbessルール検証用)を定義することは可能ですか? 私はEntLibに存在して何か意味:はい、それは行うことができますNHibernateバリデータでのビジネスルールの検証

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

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

答えて

3

を - しかし、あなたはルールが検証エラーが発生した場合には違反した上でより多くの情報を通信する方法を失われます。

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

あなたの属性HasSelfValidationAttributeIValidator(またはIInitializableValidator)を指すIRuleArgsを実装する場合、それはあなたの需要がある場合は、おそらくあまりにも少ない情報であろう、何かをバックに通信する方法が、シンプルとクラスの名前を持っていません「実際のビジネスルール」を検証します。

NHibernate Validatorは、クラスのプロパティにスコープされた簡単な検証には最適ですが、より複雑な検証を行う必要がある場合は短くなります。

0

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