Можете ли вы скомпилировать запрос LINQ to Entities, который состоит из операторов if? - PullRequest
1 голос
/ 22 июня 2010

У меня довольно сложный запрос LINQ to Entities, который я хотел бы попробовать скомпилировать, потому что он немного медленнее, чем хотелось бы.

Я строю это в несколько шагов, хотя. Вот простой пример:

public static List<Employee> GetEmployees(EntityContext ctx, bool showTerminated)
{
    var q = ctx.Employees;

    if(showTerminated==false)
    {
        q = q.Where(e => e.TerminationDt == null);
    }

    //...more conditional filters / Group By / Select applied...

    return q.ToList();
}

Можно ли воспользоваться преимуществами скомпилированных запросов, если у вас есть такой тип условной композиции запроса?

1 Ответ

0 голосов
/ 22 июня 2010

Нет. Однако вы можете переписать запрос в скомпилированную версию:

var q = ctx.Employees.Where(e => showTerminated || !e.TerminationDt.HasValue);
// rest of method
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...