をMockDataStore
返すがありましたList<Task>
。次に、Aggregate
extensionメソッドを使用してそのリストをクエリします。だから私はLINQ-to-Objectsクエリを実行していました。モックデータストアをクラスを継承するDbContext
クラスに置き換えたので、式ツリーに変換できないために本体を持つラムダ式を使用できないため、同じクエリは機能しなくなりました。それで、それを回避し、SQLで集計を実行し、メモリ内で実行する必要を回避する方法はありますか?以下は私のコードです:
//List<Task> tasks = MockDataStore.GetData()
// .Aggregate(new List<Task>(), (accumulator, treaty) => { accumulator.AddRange(treaty.Tasks); return accumulator; })
// .Where(x => x.AssignedTo.Equals(companyId) && x.StatusId == statusId).ToList();
using (SCGREDbContext context = new SCGREDbContext())
{
List<Task> tasks = context.Treaties.Aggregate(new List<Task>(), (accumulator, treaty) => { accumulator.AddRange(treaty.Tasks); return accumulator; })
.Where(x => x.AssignedTo.Equals(companyId) && x.StatusId == statusId).ToList();
return tasks;
}