获取NHibernate QueryOver SQL并检查参数而不执行

时间:2019-04-26 10:26:42

标签: hibernate nhibernate

上下文

我正在使用以下方法来获取NHibernate生成的SQL。

    public static string GetGeneratedSql(IQueryOver query)
    {
        var criteria = (CriteriaImpl) query.UnderlyingCriteria;
        var session = (SessionImpl) criteria.Session;
        var factory = (SessionFactoryImpl) session.SessionFactory;
        var implementors = factory.GetImplementors(criteria.EntityOrClassName);
        var loader = new CriteriaLoader((IOuterJoinLoadable)factory.GetEntityPersister(implementors[0]), factory, criteria, implementors[0], session.EnabledFilters);

        return loader.SqlString.ToString();
    }

我知道NHibernate不会将参数硬编码到SQL,所以我得到了这样的输出:

  

...其中myalias.Id =吗? ...

问题

我想检查是否添加了适当的参数值。在不执行实际语句的情况下如何做到这一点?

0 个答案:

没有答案