4
具有SQL标准:NHibernate的:创建一个从子查询
select COUNT(1) from
(SELECT TOP 10 Status
FROM SESSIONS
where SERVER_ID = 2569
ORDER by ID desc) as s
where s.STATUS = 32768
如何创建NHiberbate标准?语言C#。
var subQuery = DetachedCriteria.For(typeof(Session))
.SetProjection(Property.ForName("Status"))
.Add(Restrictions.Eq("Server", server))
.AddOrder(Order.Desc("Id"))
.SetMaxResults(10);
var query = DetachedCriteria.For(typeof(Session))
.Add(Subqueries.Exists(subQuery))
.Add(Restrictions.Eq("Status.Id", valueFailStatus))
.SetProjection(Projections.RowCount());
using (var session = NHibernateHelper.OpenSession())
return (int)query.GetExecutableCriteria(session)
.UniqueResult();
但我得到整个表的一个样本,而不是这10个元素之一。
@Radim:谢谢你的编辑。 – 2014-09-03 11:49:08