昨夜、私はNHibernateプロバイダーの作業を開始しました。複数のレコードが一致する基準を作成していますが、最新のレコード(IDが最大のレコード)のみを返したいと考えています。UniqueResult()がこれを行うと思いましたが、そうでない場合はリストが返される場合は使用できません。
理論的には完全なリストを選択してから目的のレコードを返すこともできますが、もっと良い方法があると思います。
昨夜、私はNHibernateプロバイダーの作業を開始しました。複数のレコードが一致する基準を作成していますが、最新のレコード(IDが最大のレコード)のみを返したいと考えています。UniqueResult()がこれを行うと思いましたが、そうでない場合はリストが返される場合は使用できません。
理論的には完全なリストを選択してから目的のレコードを返すこともできますが、もっと良い方法があると思います。
注文を追加できますか?
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;