2012-05-04 17 views
0

Criteria APIを使用して子要素と子コレクションをロードする方法Googleで見つけられるすべてのリンクを読みましたが、子要素は読み込まれません。私にはCriteria APIを使用してNHibernateの子要素/コレクションをロードする

LazyLoad(); 
this.HasMany<OrderItems>(x => x.OrderItems).KeyColumns.Add(new[] { "OrderId"}); 

:ここ

受注のOrderItemsを持っており、それは私のDTOの

受注のための流暢なマッピング機能でに指定されている、私はこれらの顕著なラインを持っている私の設定ですリポジトリクラスでは、条件クラスからクエリを作成し、リストを取得します:

DetachedCriteria query = criteria.CreateCriteria(); 
IList<Orders> myOrders = 
    query.GetExecutableCriteria(UnitOfWork.CurrentSession).List<Orders>(); 

myOrders.OrderItemsにアクセスしようとすると、それらは空です(私のDBには確実にあります)。これはどちらか動作しません府

query.SetFetchMode("Orders.OrderItems", NHibernate.FetchMode.Eager) 

:私は、だから私はこのような熱心な負荷にしようとした...マッピング機能でLazyLoad()の呼び出しがこれを可能にする

を仮定しました。

どこが間違っていますか?

答えて

0

は、あなたの参考のために、このマッピングを試してみてください:返信用

this.References<OrderItems>(x => x.OrderItems) 
    .Column("OrderId") 
    .LazyLoad(); 

または

this.References<OrderItems>(x => x.OrderItems) 
    .Column("OrderId") 
    .Not.LazyLoad(); 
+0

感謝を。私はこれをテストする機会が得られたら結果を投稿します。 – getit

関連する問題