代码之家  ›  专栏  ›  技术社区  ›  Burt

nHibernate验证程序一个或另一个值

  •  1
  • Burt  · 技术社区  · 14 年前

    使用nhibernate验证程序是否可以获得验证一个或其他属性的验证程序?在下面的示例中,需要名字或姓氏。

        [OneOrOther("Group")]
        public string FirstName {get; set; }
    
        [OneOrOther("Group")]
        public string Surname {get; set; }
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   Jay    14 年前

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

        2
  •  2
  •   David    14 年前

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

    从文档中:

    断言真属性检查方法的计算结果是否为真(对于用代码而不是注释表示的约束很有用)

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