2012-03-10 55 views

回答

0

您可以在nhibernate之外验证您自己的实体。这里是一个例子:

ValidatorEngine validatorEngine = new ValidatorEngine(); 
var nhvConfiguration = new FluentConfiguration(); 

nhvConfiguration.SetDefaultValidatorMode(ValidatorMode.UseExternal) 
    .Register(Assembly.Load("Namespace_Where_Validations_Are_Located") 
    .ValidationDefinitions()) 
    .IntegrateWithNHibernate 
    .AvoidingDDLConstraints() 
    .And 
    .AvoidingListenersRegister(); 

validatorEngine.Configure(nhvConfiguration); 

InvalidValue[] invalidValues = validatorEngine.Validate(entityToValidate); 
+0

这是否验证'entityToValidate'的对象图中的所有脏项目? – Jonn 2012-03-12 00:17:38

+0

我不相信它,但你可以测试,以确保。 – 2012-03-12 23:46:43

+0

已检查。它不(或者我一定在做错事)。我不能实现这一点,因为它跳过了我想验证的其他一些脏对象。 – Jonn 2012-03-13 00:19:32