私は、古典的な状況Orders/OrderLinesを持っています。 私はいくつかの注文を取っていきたいと思って、外側の結合で注文ラインを熱心に読み込みました。 私がQueryOver使用する場合ことに気づいた:複数のコレクションを熱心に取り出す:QueryOverとクエリの違い
var orders2 = session.QueryOver<Domain.Order>()
.Where(x => x.Company == "HBP00").And(x => x.Number == "VI11001680")
.Fetch(x => x.OrderLines).Eager
.List();
を私はデカルト積を取得します。
orders2には1つの注文があっても11行が含まれていますが、実際には11の注文線があります。
私は、クエリを使用する場合:
var orders1 = session.Query<Domain.Order>()
.Where(x => x.Company == "HBP00" && x.Number == "VI11001680")
.Fetch(x => x.OrderLines)
.ToList();
すべてが正常に動作します。 面白いことに、私はクエリを分析しており、それらは同じです。 Cartesian製品でQueryOverを使ってコレクションを積極的に読み込めないことを知りたいことはありますか?
ありがとうございます。