Nhibernate 如何处理分离的QueryOver实例?
这说明了如何创建分离的Nhibernate 如何处理分离的QueryOver实例?,nhibernate,queryover,Nhibernate,Queryover,这说明了如何创建分离的QueryOver查询(类似于DetachedCriteria)(使用QueryOver.Of())。然而,仔细看,我一点也不觉得类似 使用DetachedCriteria,我将创建实例并根据需要进行设置,然后调用GetExecutableCriteria(),然后分配会话并执行查询。使用“分离的”QueryOver,在调用GetExecutableQueryOver之前,大多数API都不可用(即,添加限制、连接、排序等),这需要执行一个ISession或IStateles
QueryOver
查询(类似于DetachedCriteria
)(使用QueryOver.Of()
)。然而,仔细看,我一点也不觉得类似
使用DetachedCriteria,我将创建实例并根据需要进行设置,然后调用GetExecutableCriteria()
,然后分配会话并执行查询。使用“分离的”QueryOver
,在调用GetExecutableQueryOver
之前,大多数API都不可用(即,添加限制、连接、排序等),这需要执行一个ISession
或IStatelessSession
,此时您就不再断开连接
如何处理分离的QueryOver
实例
编辑:
实际问题与我如何存储分离的QueryOver实例有关:
public class CriteriaQuery<T>
{
internal protected QueryOver<T> _QueryOver { get; set; }
public CriteriaQuery()
{
_QueryOver = QueryOver.Of<T>();
}
// Snip
}
公共类标准查询
{
内部保护QueryOver _QueryOver{get;set;}
公共标准查询()
{
_QueryOver=QueryOver.Of();
}
//剪断
}
我使用的是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();
Employee salesRepAlias=null;
var query=QueryOver.Of()
.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(会话)
.List();
这说明了如何在分离的查询上使用限制、联接和排序,就像使用常规查询一样
您能否发布演示不可用的API功能的代码?选择您的答案并将实际问题添加到问题中,因为您的帖子将我推向了问题的方向。谢谢。您在下面提到的实际问题是什么?QueryOver
没有我期望的APIQueryOver
是我所需要的。