1

我正在将 nhibernate 验证器集成到我的应用程序中,并且属性的一切都很好,但是一旦我创建 *.nhv.xml 文件并将我的验证规则移到那里(作为嵌入式资源)

ValidatorEngine.Validate(entity)
返回错误(实际上什么都没有,我的InvalidValue[]收藏是空的

我适合任何评论/建议

4

1 回答 1

2

问题是因为 nhibernate 验证器的配置部分
首先是

NHibernateSharedEngineProvider
应该分配到
NHibernate.Validator.Cfg.Environment.SharedEngineProvider
然后我们必须调用当前引擎的
Configure
不是的新实例,ValidatorEngine
因此完整的配置部分可能如下所示:

           var provider = new NHibernateSharedEngineProvider();
           NHibernate.Validator.Cfg.Environment.SharedEngineProvider = provider;

var nhvConfiguration = new FluentConfiguration(); nhvConfiguration .SetDefaultValidatorMode(ValidatorMode.UseExternal) .Register(Assembly.Load("assembley name") .ValidationDefinitions()) .IntegrateWithNHibernate .ApplyingDDLConstraints() .And .RegisteringListeners(); var validatorEngine = NHibernate.Validator.Cfg.Environment.SharedEngineProvider.GetEngine(); validatorEngine.Configure(nhvConfiguration);
于 2010-06-20T08:06:43.383 回答