我開始使用編譯查詢來增加一些通常執行的linq到實體查詢的性能。在一種情況下,我只是將查詢編譯成最基本的形式並預編譯,然後我根據用戶輸入添加附加的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;