【发布时间】:2017-02-14 14:48:45
【问题描述】:
我正在做一个项目,应该每 1 秒向表中插入一条新消息。在 EntityFramework 中,有一种叫做连接池的东西,它使它成为保持上下文生命周期尽可能短的更好选择。我们处置上下文。这是否适用于 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);
}
}
似乎都可以,但我应该使用哪一个?
【问题讨论】:
-
值得看看
SessionFactory接口上的OpenStatelessSession方法。无状态会话概念似乎非常适合您正在做的事情。
标签: c# entity-framework session nhibernate