コンパイルされたクエリを使用して、一般的に実行されるlinqからエンティティへのクエリのパフォーマンスを向上させました。 1つのシナリオでは、私はそれを最も基本的な形式に煮詰めて、あらかじめコンパイルした後、ユーザー入力に基づいてwhere句を追加します。コンパイルされたクエリに連鎖するとパフォーマンス上の利点が失われます
この特定のケースでは、コンパイルされたクエリのパフォーマンス上の利点が失われているようです。なぜ誰かが説明できますか?
ここで私がやっているものの例です...
IEnumerable<Task> tasks = compiledQuery.Invoke(context, userId);
if(status != null)
{
tasks = tasks.Where(x=x.Status == status);
}
if(category != null)
{
tasks = tasks.Where(x=x.Category == category);
}
return tasks;