0

Criteria API を使用して子要素と子コレクションを読み込む方法。Google で見つけたほぼすべてのリンクを読みましたが、子要素が読み込まれません。

これが私のセットアップです

注文には OrderItems があり、それは私の DTO で指定されています

Orders の流暢なマッピング関数には、次の注目すべき行があります。

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

私のリポジトリ クラスでは、条件クラスからクエリを作成し、リストを取得します。

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

myOrders.OrderItems にアクセスしようとすると、それらは空です (確かに私の DB にあります)。マッピング関数で LazyLoad() を呼び出すと、これが有効になると思いました...

だから私はこのように熱心にロードしようとしました:

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

しかし、これもうまくいきません。

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

4

1 に答える 1

0

参照用にこのマッピングを試してください。

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

また

this.References<OrderItems>(x => x.OrderItems)
    .Column("OrderId")
    .Not.LazyLoad();
于 2012-05-05T10:10:29.420 に答える