.ToFuture <>()拡張メソッドを呼び出すことで、LinqtoNHibernateクエリをfutureとして実行できることを知っています。ただし、マップされたエンティティをロードするのではなく、データをDTOに直接ロードしています。したがって、次のようなものが得られます。
var results = (from e in session.Query<Entity>()
where e.Reference.Id == someId
orderby e.Name
select new Dto
{
Id = e.Id,
Name = e.Name,
// ...
}).ToFuture<Dto>();
これは私が望むようには機能しません(私はあえて期待したと言います)。エラーが発生しました。The value "System.Object[]" is not of type "Entity" and cannot be used in this generic collection.
削除.ToFuture()
しても機能しますが、クエリはバッチ処理されません。
QueryOver APIを使用してこれを実行できることはわかっています。コードが非常にクリーンなため、LinqtoNHの方が好きです。