gpt4 book ai didi

nhibernate - 您如何处理分离的 QueryOver 实例?

转载 作者:行者123 更新时间:2023-12-03 23:54:15 24 4
gpt4 key购买 nike

这个NHibernate blog entry注意到如何分离QueryOver可以创建查询(类似于 DetachedCriteria )(使用 QueryOver.Of<T>() )。但是,仔细看,它看起来与我一点也不相似。

使用 DetachedCriteria,我将创建我的实例并根据需要进行设置,然后调用 GetExecutableCriteria()然后分配 session 并执行查询。与“超然”QueryOver ,在我调用 GetExecutableQueryOver 之前,大部分 API 都不可用(即添加限制、连接、排序等)。 , 这需要一个 ISessionIStatelessSession ,此时您不再断开连接。

你如何处理分离的QueryOver实例?

编辑:

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

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

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

// Snip
}

应该是 QueryOver<T, T> .

最佳答案

我正在使用 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();

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

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

关于nhibernate - 您如何处理分离的 QueryOver 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7353219/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com