【问题标题】:Business rules validation in NHibernate ValidatorNHibernate Validator 中的业务规则验证
【发布时间】:2009-04-28 15:09:12
【问题描述】:

是否可以定义 NHibernate.Validator 将使用的验证方法(用于业务规则验证)? 我的意思是存在于 EntLib 中的东西:

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

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

【问题讨论】:

    标签: nhibernate validation business-logic


    【解决方案1】:

    是的,可以这样做 - 但您将错过一种在验证错误的情况下传达更多信息的方式,以了解违反了哪些规则。

    据我所知,NHibernate Validator 仅提供指定文本消息、类名称以及(在属性级别验证属性的情况下)被违反属性的名称的能力。

    如果您的属性HasSelfValidationAttribute 实现了指向IValidator(或IInitializableValidator)的IRuleArgs,则除了简单的string Message 和类的名称之外,它无法返回任何其他内容,这将如果您的需求是验证“真正的业务规则”,则信息可能太少。

    NHibernate Validator 非常适合针对类属性进行简单验证,但是当您需要进行更复杂的验证时,它就显得很短了。

    【讨论】:

      【解决方案2】:

      看看The RulesEngine Project。您的业​​务对象不必装饰任何属性或实现任何接口...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        • 2014-08-16
        • 2011-07-01
        • 1970-01-01
        • 2012-06-07
        • 2012-06-18
        相关资源
        最近更新 更多