我正在使用以下代码获取NHibernate查询的SQL字符串而不执行它:
public string buildQuery(ISession session, string queryString) {
var sessionImp = (ISessionImplementor)session;
var translatorFactory = new ASTQueryTranslatorFactory();
var translators = translatorFactory.CreateQueryTranslators(queryString, null, false, sessionImp.EnabledFilters, sessionImp.Factory);
return translators[0].SQLString;
}
现在我需要做同样的事情,将命名参数传递给查询并获取已经替换参数的SQL字符串。我尝试了接受CreateQueryTranslators
作为第一个参数的IQueryExpression
方法但它似乎不起作用。有没有办法做到这一点?