私は今週末、タスクを使用してコードのセクションを並列化し、ダッシュボードページに必要なすべてのクエリを実行する作業をしていました。
私が今持っているのは、ほとんどまったく同じクエリとメソッドの最後に異なる行を持つ多くのコピー/貼り付けメソッドです。
1つのオブジェクトコンテキストに対してクエリを記述し、それをデタッチしてメソッドに渡す方法はありますか?
私はこのようなことをしたい:
using(DbContext db = new DbContext)
{
var query = db.cars.where(x => x.make == "Ford");
int handleCounts = getDoorHandleCounts(query);
}
public int getDoorHandleCounts(type? query)
{
using(DbContext db = new DbContext())
{
return query.where(x => x.partType == "DoorHandle").Count();
}
}
何か案は?
すべてのcount()メソッドはタスク配列から起動されるため、並行して実行されることに注意してください。各カウントクエリを実行するには、新しいオブジェクトコンテキストが必要です。
私はいくつかのグーグルを行い、プリコンパイルされたクエリを使用して別のオブジェクトコンテキストから呼び出すことを考えましたが、実際のクエリは、where条件を決定するためのifブロックの割り当てを伴う複雑なものです。本当に単純ではないクエリをコンパイルできますか?