Интересно, кто-нибудь может помочь? Я пишу приложение MVC3, которое должно подключаться к 2 отдельным базам данных. Я использую NHibernate и Ninject для настойчивости. Все идет хорошо, подключившись к одному БД. В моем Global.asax.cs файле у меня есть:
public class MvcApplication : NinjectHttpApplication
{
public static ISessionFactory SessionFactory = CreateSessionFactory();
public MvcApplication()
{
this.BeginRequest += new EventHandler(MvcApplication_BeginRequest);
this.EndRequest += new EventHandler(MvcApplication_EndRequest);
}
void MvcApplication_EndRequest(object sender, EventArgs e)
{
CurrentSessionContext.Unbind(SessionFactory).Dispose();
}
void MvcApplication_BeginRequest(object sender, EventArgs e)
{
CurrentSessionContext.Bind(SessionFactory.OpenSession());
}
private static ISessionFactory CreateSessionFactory()
{
var cfg = new Configuration().Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "nhibernate.config"));
return cfg.BuildSessionFactory();
}
...
protected override IKernel CreateKernel()
{
var kernel = new StandardKernel();
kernel.Load(Assembly.GetExecutingAssembly());
return kernel;
}
protected override void OnApplicationStarted()
{
log4net.Config.XmlConfigurator.Configure();
HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
base.OnApplicationStarted();
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
И у меня есть класс Ninject
public class AdultDirectionsNinjectModule : NinjectModule
{
public override void Load()
{
...
this.Bind<ISession>().ToMethod(x => MvcApplication.SessionFactory.GetCurrentSession());
...
Прочитав и будучи новичком в .NET, мне сложно понять, как подключить мое приложение к нескольким базам данных. Я искал в Интернете, но многие примеры либо слишком запутаны, либо не совсем соответствуют моей проблеме. Я понимаю, что мне нужно несколько фабрик сессий, но потом я не уверен, как связать это с Ninject. Ninject позволит мне связать одну ISession, что является проблемой, если мне нужно несколько фабрик сеансов Я использую конфигурацию XML для NHibernate и не бегло.
Может ли кто-нибудь оказать некоторую простую помощь в настройке и запуске двух фабрик сессий. Любая помощь будет с благодарностью получена.