在SQLite中使用nhibernate的内存不足

时间:2015-01-29 11:45:50

标签: c# sqlite nhibernate

我想知道是否有办法驱逐/清除会话,即使是我使用SQLite。

我有很多想要保存的数据,并在一个事务中提交所有数据。 我在每次保存后使用session.flush()然后使用session.evict(),但是ram仍然会升高并且存在溢出。

有什么想法吗? 非常感谢。

2 个答案:

答案 0 :(得分:0)

由于以下原因,您需要在Session.Abandon之前使用Session.Clear()

Session.Clear()将清除所有键的值,但不会导致会话结束事件触发。

Session.Abandon()不会清除当前请求的值。如果请求另一个页面,则该值将消失。然而,放弃将抛出事件。

最好使用Session.Clear()而不是使用Session.Abandon(),因为在调用Session.Abandon()之后,会话中的值仍然存在,但在调用Session.Clear()后删除。

答案 1 :(得分:0)

插入大量记录时,您应该使用IStatelessSession