昨晚我开始在NHibernate提供商上工作。我正在创建一个标准,几个记录将匹配,但我只想返回最新的记录(具有最大Id的记录)。我认为UniqueResult()会这样做,否则如果列表将被返回则无法使用。
理论上我可以选择完整列表然后返回所需的记录,但我相信有更好的方法。
答案 0 :(得分:4)
您可以添加订单吗?
ICriteria cr = Session.CreateCriteria<MyType>();
cr.AddOrder(Order.Desc("Id"));
MyType justone = cr.UniqueResult();
答案 1 :(得分:0)
这最终是需要的。它实际上是我之前尝试的几件事的组合。
MyObject mo = (MyObject)_session.CreateCriteria(typeof(MyObject))
.Add(Restrictions.Eq("Property", value))
.AddOrder(Order.Desc("Id"))
.SetMaxResults(1).UniqueResult();
Log.Info(this, string.Format("Retrieving latest MyObject {0}.", mo.Name));
return mo;