NHibernate验证器进行数据库查找

时间:2010-06-23 10:50:33

标签: database nhibernate lookup

我正在使用NHibernate将我的数据库表映射到我的实体和NHibernate Validator来验证我的实体。在验证实体的属性时它很有用,但是,是否可以使用NHibernate Validator进行数据库查找验证?

(差)示例:我有一个Animal类和一个AnimalType类(type = {cat,dog,horse})。 相同类型的动物必须具有唯一的名称。因此,如果数据库中存在名为“Jolly Jumper”的马,如果我尝试使用该名称创建另一匹马,我希望收到错误消息。

public class Animal
{
   public int Id { get; set; } 
   public string Name { get; set; }
   public AnimalType Type { get; set; }
}

public class AnimalType
{
   public int TypeId { get; set; }
   public string TypeName { get; set; }
}

public class AnimalDef : ValidationDef<Animal>
{
   public AnimalDef()
   {       
       Define(e => e.AnimalName).ShouldBySomeMagicReturnFalseIfThereExistsAnimalOfTheSameTypeHavingTheSameName();
   }
}

1 个答案:

答案 0 :(得分:0)

是的,这是可能的。

以下是Fabio Maulo的一个例子:http://fabiomaulo.blogspot.com/2009/10/validation-through-persistence-not.html