我正在使用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();
}
}
答案 0 :(得分:0)
是的,这是可能的。
以下是Fabio Maulo的一个例子:http://fabiomaulo.blogspot.com/2009/10/validation-through-persistence-not.html