DBレイヤーがDTOオブジェクトのIQueryableを返すことを確認しました。LinqをサポートしているNHibernateを使用しています。ただし、問題は、DBレイヤーが終了したときにセッションを閉じる必要があるため、IQueryableが機能しなくなることです。ただし、SQL Serverでクエリが実行されないため、リストを返すこともできませんでした。
したがって、IQueryableを返し、Nhibernate LINQを使用して式を実行し、新しいIQueryableを返すことは可能ですか?
多分このようなもの:
public IQueryable<TagDTO> Tags
{
get
{
using (var session = factory.OpenSession())
{
return new ExceuteQueryable<TagDTO>(session.Query<TagDTO>());
//return session.Query<TagDTO>();
}
}
}
ExceuteQueryableは、式ツリーを使用してクエリを実行し、結果のリストを取得して、リストの新しいiqueryableを返す必要がありますか?