从这个讨论中,我收集到 NHibernate Validator 在内置验证之后运行,这意味着我的 Not Null 属性在 NHibernate Validator 甚至运行之前抛出 PropertyValueException。
有没有办法在 NH 内置验证器之前运行 NHV?
我希望仍然能够像香草 NHV 那样验证所有脏实体。
从这个讨论中,我收集到 NHibernate Validator 在内置验证之后运行,这意味着我的 Not Null 属性在 NHibernate Validator 甚至运行之前抛出 PropertyValueException。
有没有办法在 NH 内置验证器之前运行 NHV?
我希望仍然能够像香草 NHV 那样验证所有脏实体。
您可以在 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);