[英]Registering NHibernate ISession as SingleInstance in Autofac
在很少重启的Windows服务中创建NHibernate.ISession实现的一个实例是否有害? 我对ISession不太了解,但是据我了解,ISession实现的实例保留了对事务的引用,这些事务可以在我提交更改后立即销毁
using (ITransaction trans = MyISession.BeginTransaction())
{
...
trans.Commit();
}
当我在线检查代码示例时,几乎总是使用autofac实现ISession设置为InstancePerLifetimeScope()。 这实际上意味着该实例将从其创建时所在的上下文中退出(例如HTTP request)。
有人可以启发我在长时间运行的Windows进程中在autofac中将nhibernate注册为单个实例的危害(如果有)吗?
builder.Register(c => new MyIsessionFactory.OpenSession()).As<ISession>().SingleInstance();
会话跟踪其已加载甚至引用的所有实体和集合。
在应用的整个生命周期中保持会话打开状态会导致:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.