我正在使用 nHibernate ICriteria 执行查询,我希望能够获取语句运行后执行的 SQL。例如,我有这样的东西。
ISession session = NHibernateSessionManager.Instance.GetSession();
DetachedCriteria query = BuildCriteria(); // Goes away and constructs the ICriteria
var result = query.GetExecutableCriteria(session).List<object>()
// somehow here get the sql that was just run
string sql = query.GetSqlSomehow();
我知道我可以记录它并在日志中看到 sql,但我想在执行语句后立即获取它,以便我可以向用户显示 SQL(即使它看起来不太好)。
最佳答案
您可以将一个IInterceptor
附加到您的NH ISession
,然后使用OnPrepareStatement()
方法捕获(even modify ) SQL。
关于c# - 从 nHibernate 获取执行的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1264132/