我不应该有多个连接来访问SQLite数据库,因为在数据库中写入时会提供Database is locked
之类的错误。所以我创建了多个交易。但是,似乎每次它返回相同的交易。
答案 0 :(得分:0)
每个连接只能有一个事务。
没有一种机制可以同时获得多个写入事务。
答案 1 :(得分:0)
NHibernate可以同时进行多次写入事务。诀窍是将隔离级别设置为ReadCommitted。可以在代码here中看到在SQLite中设置该值的功能。但是,我应该提一下,我对这种行为并不满意。只要第一个会话在第二个会话关闭之前没有读取任何数据,两个活动事务会话就可以正常工作。
我强调在那里读取因为我可以将新对象保存到数据库而没有问题,但是当第二个会话在事务上调用Commit()时,调用Get()或QueryOvery()会导致异常。我看到的问题是SQLiteConnection被处理并处理未被处理的连接的事务检查。这可能是NHibernate的一个问题,因为我没有使用任何更通用的测试。