私たちは、データベースからデータを取り出し、別のシステムにレポートを書き込むプロジェクトでNHibernateを使用しています。私のシナリオでは、患者は通常、いつもではないが、報告書が書かれたときに次の予定を予定している。以下のクエリは、レポートに含める次の予定データを取得します。NHibernate UniqueResultの代替?
予定が予定されている単一の結果があるとして通常、これは、正常に動作します:
private NextFollowup GetNextFollowup(int EncounterID)
{
try
{
NextFollowup myNextF = new NextFollowup();
IQuery myNextQ = this.Session.GetNamedQuery("GetNextFollowup").SetInt32("EncounterID", EncounterID);
myNextF = myNextQ.UniqueResult<NextFollowup>();
return myNextF;
}
catch (Exception e)
{
throw e;
}
}
ここで質問ですね。ただし、次のフォローアップがない場合は、一意の結果がないというエラーが表示されます。この場合は例外をスローしたくないので空のオブジェクトを返したい。 UniqueResultの代わりにリストを取得する場合は、次のフォローアップがない状況で空のリストを取得します。 HQLクエリでリストを使用するよりも、「値がある場合は、1つしかありません」という状況を処理するより良い方法がありますか?