1

OrderLineに関連付けられているXPOドメインオブジェクトOrderがあります。私が持っているために私はとして実装されているプロパティProfitを持っています

public decimal Profit
{
    get
    {
        decimal result = 0;
        foreach (OrderLine ol in this.OrderLines)
        {
            result += ol.Profit.AsMoney() * ol.Quantity;
        }
        return result;
    }
}

ただし、これにより、注文のリストは、注文ごとに注文ラインごとにクエリを実行します。2番目のクエリでオーダーラインのコレクションをロードしてメモリに結合するにはどうすればよいですか?それが不可能な場合は、実際にアクセスされるまでProfitプロパティのロードを防ぐことができますか?

4

1 に答える 1

1

セッション プリフェッチメソッドを使用してタスクを実行できます

Session.PreFetch(ObjectList, "OrderLines");  

また、DevExpress CodeCentralE305のこのサンプルを確認することも検討してください。計算されたプロパティがキャッシュされています。その結果、パフォーマンスがさらに向上します

于 2011-08-04T12:56:19.923 に答える