Future を次のように使用して呼び出されるマルチレベル オブジェクト グラフがあるとします。
var Dads = db.Session.Query<Parent>().Where(P => P.EntityKey == Id)
.ToFuture<Parent>();
var Kids = db.Session.Query<Kid>().Where(K => K.Parent.EntityKey == Id)
.ToFuture<Kid>();
var Dad = dads.ToList() を呼び出すと、バッチがネットワークを経由してプロファイラーに表示されます。
問題は、コレクションを列挙するときに、データベースに 1 回限りのクエリを送信していることです。
例えば。
for each (Kid kid in Dad.Kids) // This seems to hit the database
{
Teach(kid);
}
SQL クエリを送信し、データベースにヒットして各子供を取得します。オブジェクト グラフが読み込まれないのはなぜですか? またはこれは予想される動作ですか?