Проверка бизнес-правил в NHibernate Validator - PullRequest
2 голосов
/ 28 апреля 2009

Можно ли определить метод проверки (для проверки правил businbess), который будет использоваться NHibernate.Validator? Я имею в виду то, что существует в EntLib:

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

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

Ответы [ 2 ]

3 голосов
/ 28 апреля 2009

Да, это может быть сделано, но вам не хватит способа сообщить больше информации о том, какие правила были нарушены в случае ошибок проверки.

NHibernate Validator, насколько мне известно, предоставляет только возможность указать текстовое сообщение, имя класса и - в случае атрибутов проверки уровня свойства - имя нарушенного свойства.

Если ваш атрибут HasSelfValidationAttribute реализует IRuleArgs, указывающий на IValidator (или IInitializableValidator), он не имеет возможности передать что-либо еще, кроме простого string Message и имени класса, которое вероятно, будет слишком мало информации, если вы хотите проверить «настоящие бизнес-правила».

NHibernate Validator отлично подходит для простой проверки, относящейся к свойствам класса, но не подходит, когда вам нужно выполнить более сложную проверку.

0 голосов
/ 09 сентября 2011

Взгляните на Проект RulesEngine . Ваш бизнес-объект не должен быть украшен какими-либо атрибутами или должен реализовывать какие-либо интерфейсы ...

...