Próbuję używać płynnie z sesją na żądanie. Postępuję zgodnie z "receptą" z książki kucharskiej nhibernate, jednak używa ona pliku konfiguracyjnego nhibernate.currentsessioncontext płynnie nhibernate jak to zrobić?
Nie jestem pewien, co jest lepsze, ale teraz trzymam się płynnej konfiguracji tylko dlatego, że nie wiedziałbym, jak ustawić plik konfiguracyjny nhibernate, aby korzystać z płynnego mapowania i mapowania nhibernate (pliki hbm).
namespace Demo.WebUI
{
public class MvcApplication : NinjectHttpApplication
{
public static ISessionFactory SessionFactory { get; private set; }
protected override void OnApplicationStarted()
{
SessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008.ConnectionString(
c => c.FromConnectionStringWithKey("test")))
.Mappings(m => m.FluentMappings
.AddFromAssemblyOf
<Demo.Framework.Data.NhibernateMapping.UserMap>())
.ExposeConfiguration(BuidSchema)
.BuildSessionFactory();
}
protected void Application_BeginRequest(object sender, EventArgs e)
{
var session = SessionFactory.OpenSession();
//CurrentSessionContext.Bind(session);
}
protected void Application_EndRequest(object sender, EventArgs e)
{
//var session = CurrentSessionContext.Unbind(SessionFactory);
SessionFactory.Dispose();
}
}
}
Jak widać w Begin_Request samouczek książki miał
CurrentSessionContext.Bind(session);
Jednak jeśli mogę użyć tego rzuca błąd, ponieważ nie mają NHibernate plik konfiguracyjny w użyciu.
Jak mogę to zmienić, aby używać płynnej konfiguracji? Czy nie muszę nawet wykonywać tego kroku? (Tzn. Czy odbywa się to wewnętrznie?)
Czy należy opracować w ramach „EndRequest jest błędem "Podążam za tym, co robi się w nhibernate cookbook 3.0. – chobo2
Ah Widzę, co masz na myśli. Miałem zamiar zakończyć obecną sesję, a nie fabrykę sesji (to byłoby złe lol). – chobo2
o to mi chodziło. –