NHibernate - ISession与IStatelessSession的区别

17

在NHibernate中,使用 IStatelessSessionISession 有何利弊之分?

1个回答

21

StatelessSession不会追踪实体所做的更改,也没有懒加载支持。这就是为什么它比Session性能更好的原因。

但是使用stateless session,你被迫手动管理插入、删除、更新操作,这真的很不舒服。

Stateless session适用于需要大量查询数据库且不需要追踪更改等批量操作。


还有不同的用例。例如,当您拥有小型数据库并希望在应用程序的整个生命周期内将其全部保存在内存中,并且仅需要数据库能够在重新启动应用程序后恢复应用程序的状态时。在这种情况下,“IStatelessSession”可以使您免受与惰性加载、合并等相关的性能开销的影响... 当然,这也意味着您将不得不自己实现某种类型的更改跟踪,例如使用自定义工作单元模式实现。当然,NHibernate可能不是最适合该用例的选择... - chris

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接