3
昨晚我開始研究NHibernate提供者。我創建了幾條記錄匹配的條件,但是我只想返回最近的記錄(具有最大ID的記錄)。我認爲UniqueResult()會做到這一點,如果列表將被返回,否則不能使用它。NHibernate選擇符合標準的最新記錄
我理論上可以選擇完整列表然後返回所需的記錄,但我相信還有更好的辦法。
昨晚我開始研究NHibernate提供者。我創建了幾條記錄匹配的條件,但是我只想返回最近的記錄(具有最大ID的記錄)。我認爲UniqueResult()會做到這一點,如果列表將被返回,否則不能使用它。NHibernate選擇符合標準的最新記錄
我理論上可以選擇完整列表然後返回所需的記錄,但我相信還有更好的辦法。
您可以添加訂單嗎?
ICriteria cr = Session.CreateCriteria<MyType>();
cr.AddOrder(Order.Desc("Id"));
MyType justone = cr.UniqueResult();
這裏最終是什麼要求。它實際上是我之前嘗試過的一些事情的組合。
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;
是的,但我仍然返回一個列表。我只想獲得一個對象 – splatto 2010-01-27 21:37:32
您可以與'UniqueResult()'結合使用。查看我的更新。 – Joel 2010-01-27 21:49:30
你說得對,我誤解了速記。我會給你正確的答案,並將其留在下面,以便那些處於類似情況的人可以看到完整的方法體。謝謝! – splatto 2010-01-28 05:52:51