Я работаю над проектом, в который каждый месяц нужно вставлять новый столбец в таблицу. В EntityFramework есть что-то вроде объединения соединений, что делает его лучшим выбором, чтобы максимально сократить время жизни контекста. Мы располагаем контекстом. Это относится к сеансу Nhibernate?Nhibernate и сеансовый пул
ISessionFactory sf = cfg.BuildSessionFactory();
ISession session = sf.OpenSession();
While(true)
{
//.......
using (var tran = session.BeginTransaction())
{
session.SaveOrUpdate(msg);
tran.Commit();
}
Thread.Sleep(1000);
}
Или
ISessionFactory sf = cfg.BuildSessionFactory();
While(true)
{
//.......
using(var session = sf.OpenSession())
{
using (var tran = session.BeginTransaction())
{
session.SaveOrUpdate(msg);
tran.Commit();
}
Thread.Sleep(1000);
}
}
И, кажется, работают, но один я должен использовать?
Возможный дубликат [Как долго может/должна быть открыта сессия NHibernate?] (Http://stackoverflow.com/questions/1243835/how-long-can-should-an-nhibernate-session-be-kept -open) – Fran
Стоит взглянуть на метод OpenStatelessSession на интерфейсе 'SessionFactory'. Концепция сеанса без состояния кажется подходящей для того, что вы делаете. –