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 に答える