短而甜蜜:
在我的应用程序中进行任何本机SQL查询之前,是否应始终刷新SessionScope
?
我猜答案是肯定的,因为NHibernate实现了缓存,因此所做的更改仍然不在数据库中,因此查询会产生不一致的结果。
在NHibernate中,当前活动的事务在同一事务中进行这些查询的正确方法是什么?
这很重要,因为我的业务逻辑可能会出现死锁。
关于这两个问题的进一步文件也将受到赞赏!
答案 0 :(得分:1)
(我假设通过“刷新”你提到ISession.Flush()
):
ISession.CreateSQLQuery()
。其他是使用NHibernate ITransaction.Enlist()
。但是,我不确定使用Enlist()
执行DbCommand是否会刷新会话。