2009-04-28 6 views
2

Est-il possible de définir une méthode de validation (pour la validation des règles businbess) qui sera utilisée par NHibernate.Validator? je veux dire quelque chose qui existe dans EntLib:Validation des règles métier dans NHibernate Validator

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

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

Répondre

3

Oui, il peut être fait - mais vous allez manquer un moyen de communiquer plus d'informations sur les règles qui ont été violés dans le cas d'erreurs de validation. NHibernate Validator, à ma connaissance, permet uniquement de spécifier un message texte, le nom de la classe et, dans le cas des attributs de validation au niveau de la propriété, le nom de la propriété violée.

Si votre attribut HasSelfValidationAttribute mettre en œuvre IRuleArgs pointant vers un IValidator (ou IInitializableValidator), il n'a aucun moyen de communiquer de nouveau quoi que ce soit d'autre mais un simple et le nom de la classe, ce qui serait probablement trop peu d'informations si votre demande est valider les "règles métier réelles". NHibernate Validator est idéal pour la validation simple portée aux propriétés d'une classe, mais elle est courte lorsque vous avez besoin de faire une validation plus complexe.

0

Jetez un oeil à The RulesEngine Project. Votre objet de gestion n'aura pas besoin d'être décoré avec des attributs ou d'implémenter des interfaces ...

Questions connexes