C# NHibernate事务中的本机SQL查询
又短又甜:C# NHibernate事务中的本机SQL查询,c#,sql,nhibernate,transactionscope,C#,Sql,Nhibernate,Transactionscope,又短又甜: 在我的应用程序中进行任何本机SQL查询之前,我是否应该总是刷新会话范围 我猜答案是肯定的,因为NHibernate实现了缓存,所以可能所做的更改仍然不在数据库中,因此查询将得到不一致的结果 如何在NHibernate中当前活动事务的同一事务中进行这些查询 这很重要,因为我的业务逻辑可能会出现死锁 关于这两个问题的进一步文档也将不胜感激 (我假设通过“刷新”您指的是ISession.Flush()): 快速回答是:这取决于刷新模式,如果从来没有刷新过,则必须自己刷新会话,但如果是自
ISession.Flush()
):
ISession.CreateSQLQuery()
。另一种方法是使用NHibernateITransaction.inclist()
。但是,我不确定使用inclist()
执行DbCommand是否会刷新会话ISession.Flush()
):
ISession.CreateSQLQuery()
。另一种方法是使用NHibernateITransaction.inclist()
。但是,我不确定使用inclist()
执行DbCommand是否会刷新会话这应该回答你的问题这应该回答你的问题