Я пытаюсь настроить свое приложение так, чтобы информация об аудите сохранялась в отдельной базе данных. Мне удалось настроить и настроить NHibernate для использования одной базы данных с помощью Ninject, но не для моей второй базы данных.
Вот что я пробовал:
public class NHibernateModule : NinjectModule
{
public override void Load()
{
Bind<ISessionFactory>()
.ToMethod(c => NHibernateHelper.CreateSessionFactory())
.InSingletonScope();
Bind<ISessionFactory>()
.ToMethod(c => NHibernateHelper.CreateLoggingSessionFactory())
.WhenInjectedInto<BaseLoggingModel>()
.InSingletonScope();
Bind<ISession>()
.ToMethod(c => c.Kernel.Get<ISessionFactory>().OpenSession());
}
}
public static class NHibernateHelper
{
public static ISessionFactory CreateSessionFactory()
{
var cfg = new Configuration();
return cfg.Configure().SetProperty("connection.connection_string_name", "ApplicationServices").BuildSessionFactory();
}
public static ISessionFactory CreateLoggingSessionFactory()
{
var cfg = new Configuration();
return cfg.Configure().SetProperty("connection.connection_string_name", "AuditingServices").BuildSessionFactory();
}
}
К сожалению, когда-либо вызывался только метод CreateSessionFactory (), и я не могу получить сеанс в моей базе данных аудита.
Любая помощь будет очень ценится