나는 새 메신저가 1 초마다 테이블에 삽입되어야하는 프로젝트를 진행하고 있습니다. 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);
}
}
모두 작동하는 것,하지만 난 어느 쪽을 사용하여야한다?
[가능한 한 Hibernate 세션을 열 수 있습니까?] (http://stackoverflow.com/questions/1243835/how-long-can-should-an-nhibernate-session-be-kept)의 가능한 복제본입니다. -open) – Fran
'SessionFactory' 인터페이스에서'OpenStatelessSession' 메소드를 살펴볼 가치가 있습니다. 무국적 세션 개념은 여러분이하고있는 것에 적합합니다. –