为什么在会话结束后将实体保留在内存中被认为是Nhibernate中的错误做法?

时间:2014-10-01 13:31:22

标签: c# session nhibernate

我有一个将数据插入NH实体的网站,

服务器将实体保留在内存中, 在站点上插入/更改数据时,服务器仅更新相关信息,并在保存时将其保存在内存中。

这是因为实体的复杂性。

我读到在会话关闭后将实体保留在内存中是一种不好的做法, 我确保没有延迟加载,并且当创建新会话以保存实体时 - 它工作正常。

我们不能使用二级缓存,因为我们经常更改实体而不保存,只有当用户决定要保存时我们才会保存内存实体,或者在需要时回滚更改。

使用它会产生什么问题?

1 个答案:

答案 0 :(得分:2)

一个重要的考虑因素是对象保留在内存中的时间越长,其他人在数据库中更改它的风险就越大。风险有多大取决于您的使用案例。