如何将表达式传递给LINQ查询?

时间:2016-02-05 11:37:43

标签: c# linq

我可以将Expression传递给LINQ Select()方法:

PERMISSION_DENIED

如何使用LINQ样式查询执行相同操作?

public IQueryable<T> GetInfo(long limit, Expression<Func<MyType, T>> selector)
{
    return DbSet.Where(t => t.id < limit).Select(selector)
}

1 个答案:

答案 0 :(得分:7)

你可以使用:

var result = (from t in DbSet
             where t.id < limit
             select t).Select(selector);

...但您无法在查询表达式中使用选择器 ,因为它隐含地包装了您不想要的额外图层。< / p>

目前还不清楚为什么你想在这里使用查询表达式,请注意 - 我强烈建议你对这两种LINQ样式感到满意并使用当时更合适的东西 - 在这种情况下,您的原始代码就是样式。