你如何使用分离的QueryOver实例?

Rem*_*yth 8 nhibernate queryover

这篇NHibernate博客文章指出了如何创建(使用)分离的QueryOver查询(类似于).然而,看着这一点,它看起来并不像我.DetachedCriteriaQueryOver.Of<T>()

使用DetachedCriteria,我会创建我的实例并设置它,但我需要,然后调用GetExecutableCriteria()然后分配会话并执行查询.使用"分离" QueryOver,大多数API都不可用(即,添加限制,连接,排序等等),直到我打电话GetExecutableQueryOver,这需要一个ISessionIStatelessSession,此时您不再断开连接.

你如何使用分离的QueryOver实例?

编辑:

实际问题与我如何存储分离的QueryOver实例有关:

public class CriteriaQuery<T>
{
    internal protected QueryOver<T> _QueryOver { get; set; }

    public CriteriaQuery()
    {
        _QueryOver = QueryOver.Of<T>();
    }

    // Snip
}
Run Code Online (Sandbox Code Playgroud)

它应该是一个QueryOver<T, T>.

Dan*_*ing 13

我正在使用NHibernate 3.1.0.4000.以下代码成功编译:

Employee salesRepAlias = null;

var query = QueryOver.Of<Customer>()
    .JoinAlias(x => x.SalesRep, () => salesRepAlias)
    .Where(x => x.LastName == "Smith")
    .Where(() => salesRepAlias.Office.Id == 23)
    .OrderBy(x => x.LastName).Asc
    .ThenBy(x => x.FirstName).Asc;

return query.GetExecutableQueryOver(session)
    .List();
Run Code Online (Sandbox Code Playgroud)

这说明了对分离的QueryOver使用限制,连接和排序,就像使用常规QueryOver一样.

您能否发布演示不可用的API功能的代码?