我在让 NHV 与 Fluent NHibernate 一起工作时遇到了一些麻烦。我拥有的一个单元测试有一个应该未能通过验证的实体最终会引发 ADO 异常。我已经通过以下方式配置了 NHV:
private static void Init()
{
_SessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005.ConnectionString(connectionString)
.ShowSql())
.Mappings(m =>
m.FluentMappings.AddFromAssemblyOf<SessionFactory>()
.ExportTo(pathToExportMappingsTo))
.ProxyFactoryFactory("NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu")
.ExposeConfiguration(ConfigureNhibernateValidator)
.BuildSessionFactory();
}
private static void ConfigureNhibernateValidator(Configuration config)
{
var nhvConfiguration = new NHibernate.Validator.Cfg.Loquacious.FluentConfiguration();
nhvConfiguration
.SetDefaultValidatorMode(ValidatorMode.OverrideAttributeWithExternal)
.Register(Assembly.Load("Business.Objects")
.ValidationDefinitions())
.IntegrateWithNHibernate
.RegisteringListeners();
ValidatorEngine validatorEngine = new ValidatorEngine();
validatorEngine.Configure(nhvConfiguration);
ValidatorInitializer.Initialize(config, validatorEngine);
}
我现在已经多次查看此配置并搜索互联网以尝试找出问题所在。我还查看了 NHV 源中提供的示例,但我无法弄清楚为什么我的单元测试不会引发 InvalidStateException。我有一个单元测试来验证应该失败的同一实体,该实体直接通过验证引擎验证它,这很有效。
有人看到上面的配置有什么问题吗?
我正在使用NHibernate 3.1、NHibernate Validator 1.3和Fluent NHibernate 1.2.0.712