3
我們在一個項目中使用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查詢中使用列表更好的方式來處理「有價值,只會有一個」的情況?