【发布时间】:2015-01-29 11:45:49
【问题描述】:
我想知道是否有办法驱逐/清除会话,即使我使用 SQLite。
我有很多数据要保存,并在一个事务中提交。 每次保存后我都使用 session.flush() 然后 session.evict() ,但是内存仍然升起并且有溢出。
有什么想法吗? 非常感谢。
【问题讨论】:
标签: c# sqlite nhibernate
我想知道是否有办法驱逐/清除会话,即使我使用 SQLite。
我有很多数据要保存,并在一个事务中提交。 每次保存后我都使用 session.flush() 然后 session.evict() ,但是内存仍然升起并且有溢出。
有什么想法吗? 非常感谢。
【问题讨论】:
标签: c# sqlite nhibernate
由于以下原因,您在 Session.Abandon 之前需要 Session.Clear()
Session.Clear() 将清除所有键的值,但不会触发会话结束事件。
Session.Abandon() 不会清除当前请求的值。如果请求另一个页面,则该页面的值将消失。但是,放弃将引发事件。
使用 Session.Clear() 而不是使用 Session.Abandon() 会更好,因为在调用 Session.Abandon() 之后值仍然存在于会话中,但在调用 Session.Clear() 之后会被删除。
【讨论】:
您应该在插入大量记录时使用IStatelessSession。
【讨论】: