Konfigurationen & SessionFactory'n skall inte ligga i aspx sidorna.
--- Redigerat ---
Jag skrev helt fel, det är sessionen som bör lagras i HttpContext.Current.Items
Och SessionFactoryn bör byggas en gång enbart och sedan lagra SessionFactory i en statisk variabel.
Det finns flera sidor på webben som tar upp just detta.
Där stod det en hel del ;) jag testade nu med en quick fix som jag undrar om den funkar hyfsat, verkar så i mina tester (än så länge)
skapade en egen statisk metod:
public class nhib
{
public static ISessionFactory GetSessionFactory()
{
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.AddAssembly("plan9");
return cfg.BuildSessionFactory();
}
}
// hur sjutton pastear man in så formateringen blir bra...(
public class nhib
{
private static _sessionFactory;
public static ISessionFactory GetSessionFactory()
{
if(_sessionFactory == null)
{
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
cfg.AddAssembly("plan9");
_sessionFactory = cfg.BuildSessionFactory();
}
return _sessionFactory;
}
}
Sedan hade jag nog inte haft det som en Util klass utan gjort en sida som ärvde av Page som implemmenterade en Property Session som i sin tur hade denna koden i sig.
public ISession Session
{
get
{
return HttpContext.Current.Items["NHibernateSession"] as ISession;
}
}