NHibernate Validator一个值或另一个

时间:2010-02-04 21:08:29

标签: c# nhibernate hibernate validation

NHibernate验证器是否可以获得验证一个或其他属性的验证器?在下面的示例中,需要FirstName或Surname。

    [OneOrOther("Group")]
    public string FirstName {get; set; }

    [OneOrOther("Group")]
    public string Surname {get; set; }

2 个答案:

答案 0 :(得分:2)

是的,您可以在对象上创建一个属性来测试条件是否成立,然后使用其中一个nhibernate装饰器来检查它是否有效,即为真。

来自文档:

AssertTrue属性检查方法的计算结果为true(对于在代码而不是注释中表示的约束很有用)

到目前为止,这是实现您所描述的特定问题的最简单方法,您可以创建自定义类级别验证器,但它可能比您需要的工作更多。

答案 1 :(得分:2)

我认为this posthttp://devlicio.us/blogs/billy_mccafferty/archive/2009/07/30/writing-a-custom-nhibernate-class-validator.aspx)可以在这种情况下很好地应用。我认为唯一的区别是样本使用互斥条件(一个或另一个,但不是两个 - XOR)。