我正在尝试从表中获取最大值,例如:
SELECT max(re.Sequence) FROM MyTable re WHERE re.ItemId = :itemId
这样我就可以为每个itemId获得Sequence列的最大值。
尝试使用createQuery但没有用:
string hql = @"SELECT new Int32(max(re.Sequence) FROM MyTable re WHERE re.Item.Id = :itemId";
List<Int32> lista = session
.CreateQuery(hql)
.SetParameter("itemId", idItem)
.List<Int32>()
.ToList();
任何帮助将不胜感激。
最好的祝福。
最佳答案
使用条件语法:
var criteria = session.CreateCriteria<MyTable>();
criteria.Add(Restrictions.Eq("ItemId", itemId));
criteria.SetProjection(Projections.Max("Sequence"));
var max = criteria.UniqueResult<int>();
使用语法查询:
var max = session.QueryOver<MyTable>().Where(x => x.ItemId.Equals(itemId)).Select(
Projections.Max<MyTable>(x => x.Sequence)).SingleOrDefault<int>();
关于nhibernate - NHibernate使用过滤器选择最大值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15790749/