我正在将nhibernate验证器集成到我的应用程序中,并且所有属性都很好 但是只要我创建* .nhv.xml文件并在那里移动我的验证规则(作为嵌入式资源)
ValidatorEngine.Validate(entity)
返回错误(实际上没有,我的InvalidValue[]
集合为空
我适合任何评论/建议
答案 0 :(得分: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);