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;
}
}