Я изо всех сил пытаюсь заставить Fluent NHibernate и NHibernate Validator работать вместе, и в Интернете, похоже, отсутствует документация о том, как лучше всего это сделать.Я нашел несколько сайтов, которые подробно описывают, как настроить валидатор и NHibernate, но не Fluent NHibernate.Я понимаю, что Fluent NHibernate - это просто NHibernate с хорошими сопоставлениями, но я не могу полностью разобраться в конфигурации.
Это код, который я использую для настройки моего SessionFactory
:
public static void Initialise()
{
Configuration config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(c => c
.Server("")
.Database("")
.Username("")
.Password("")))
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<Map>()
.Conventions.AddFromAssemblyOf<EnumConvention>())
.BuildConfiguration();
DataBindingInterceptor interceptor = new DataBindingInterceptor();
SessionFactory = config
.SetInterceptor(interceptor)
.BuildSessionFactory();
}
Из этого вопроса я пытался создать метод, который выглядел следующим образом, для настройки моего валидатора:
private static void ConfigureValidator(Configuration config)
{
NHibernate.Validator.Cfg.Environment.SharedEngineProvider = new SharedValidatorProvider();
var nhvc = new NHVConfiguration();
nhvc.Properties[NHibernate.Validator.Cfg.Environment.ApplyToDDL] = "true";
nhvc.Properties[NHibernate.Validator.Cfg.Environment.AutoregisterListeners] = "true";
nhvc.Properties[NHibernate.Validator.Cfg.Environment.ValidatorMode] = "UseAttribute";
var ve = new ValidatorEngine();
ve.Configure(nhvc);
ValidatorInitializer.Initialize(config, ve);
}
Однако я получил ошибки при попытке найти пространство имен для SharedValidatorProvider
и NHVConfiguration
.У меня есть Castle.Core, FluentNHibernate, NHibernate, NHibernate.ByteCode.Castle, NHibernate.Validator и NHibernate.Validator.Specific DLL, указанные в проекте и следующие using
:
using NHibernate.Validator.Engine;
using NHibernate.Validator.Event;
using NHibernate.Validator.Cfg;
using NHibernate.Cfg;
using NHibernate;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
Iбыл бы очень признателен за вашу помощь, чтобы Fluent NHibernate и NHibernate Validator счастливо работали вместе.Надеюсь, это станет окончательным источником, когда люди попытаются сделать это в будущем!