データ範囲で計算を行う必要がある小さなプログラムがあります。範囲には、約 50 万件のレコードが含まれている可能性があります。私は自分のデータベースを見て、agroup by
が実行されたことを見ました。
結果は最初の行で実行されたと思い、後で RAM 内のデータを操作しました。しかし、今では、クエリ ビルダーが式を結合していると思います。
var Test = db.Test.Where(x => x > Date.Now.AddDays(-7));
var Test2 = (from p in Test
group p by p.CustomerId into g
select new { UniqueCount = g.Count() } );
私の実際のアプリでは、最初のクエリで選択された範囲に基づくサブクエリをさらに取得しました。DBが異なる選択を行えるようにするために、大きなオーバーヘッドを追加しただけだと思います。
.ToList()
今、私は基本的に最初の式の後に呼び出すだけです。
だから私の質問は、式ツリーを構築するときに、クエリビルダーが異なる IQueryable を組み合わせるというのは正しいですか?