オブジェクトの読み取り専用プロパティ ( LastCompletedDate
)を計算する、MS SQL で定義された DB 集中型関数がありInspection
ます。通常、この情報は必要ないため、 ではマッピングしていませんInspection.hbm.xml
。
情報が必要な場合は、 の IEnumerable コレクションを取得しInspections
、データベースにクエリを実行して を検索しLastCompletedDate
、それぞれに入力します。理想的には、それぞれのデータベースに個別に移動する必要はありませんInspection
。私はNHibernateでこれを行う方法を見つけるのに苦労しています(私はNHibernateの比較的初心者です)。私は次のようなことを考えています:
CurrentSession.CreateQuery(
"select InspectionId, dbo.fn_GetLastCompletedDate(InspectionId)
from Inspection where InspectionId in :idList")
.SetParameter("idList", from InspectionList select InspectionId)
.List();
その後、日付を取り出して検査オブジェクトに追加するループが続きます。
これを行うより良い方法はありますか?そして、どのような構文が必要ですか?