3

昨晚我开始研究 NHibernate 提供程序。我正在创建多个记录将匹配的条件,但是我只想返回最近的记录(ID 最大的记录)。我认为 UniqueResult() 会这样做,否则如果返回列表,则无法使用它。

我理论上可以选择完整列表,然后返回所需的记录,但我相信有更好的方法。

4

2 回答 2

4

可以添加订单吗?

ICriteria cr = Session.CreateCriteria<MyType>();

cr.AddOrder(Order.Desc("Id"));

MyType justone = cr.UniqueResult();
于 2010-01-27T20:52:10.237 回答
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;
于 2010-01-27T21:47:38.923 回答