我在使用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。