你能编译一个由if语句组成的LINQ to Entities查询吗?

时间:2010-06-22 19:40:58

标签: linq entity-framework linq-to-entities

我有一个相当复杂的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 :(得分:0)

没有。但是,您可以将查询重写为可编译的版本:

var q = ctx.Employees.Where(e => showTerminated || !e.TerminationDt.HasValue);
// rest of method