2

エンティティ フレームワークを使用したナビゲーション プロパティの合計に問題があります

これが私のサンプルクラスです

public class Customer
{
    public int Id { get; set; }
    public string Name { get; set; }
    public virtual ObservableCollection<Call> Calls { get; set; }
    [NotMapped]
    public decimal TotalCallDuration { get { return Calls.Sum(c => c.Value); } }

}

public class Call
{
    public int Id { get; set; }
    public int CustomerID { get; set; }
    public virtual Customer Customer { get; set; }
    public decimal Value { get; set; }
    public DateTime Date { get; set; }
}

これはうまく機能しますが、何百ものレコードがあると非常に遅くなります

機能を失わずにこれを高速化するにはどうすればよいですか?

ありがとう

4

1 に答える 1

2

あなたがしたいことは次のとおりです。 customer.TotalCallDuration = context.Call.Sum(x => x.Value).Where(x => x.CustomerID == customer.Id);

于 2013-04-19T00:21:46.093 に答える