2011-11-09 6 views
0

私はあなたが.ToFuture <>()拡張メソッドを呼び出すことによって将来的にNHibernateクエリにLinqを実行できることを知っています。しかし、私はマッピングされたエンティティを読み込むのではなく、データをDTOに直接ロードします。Linq to NHibernate + transformations + future

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でこれを行うことができると知っています。私はちょうどLinqをNHによく似ています。

答えて

0

これはバグのようです。簡単な再生テストケースを作成できる場合は、https://nhibernate.jira.com/に新しい問題を入力してください。

このリリースで修正されたsimilar defectがすでに存在していたため、その前に最新のバージョン(当時は3.2)を使用しているかどうかを確認してください。

+0

これはおそらくそれです。私はNHibernate 3.0を使用しています(一般的なライブラリの制限:-(おそらくここでの問題ですが、私は簡単に3.2でテストすることはできません。 – Koen