[英]How to pass an Expression into a LINQ query?
我可以将Expression传递给LINQ Select()方法:
public IQueryable<T> GetInfo(long limit, Expression<Func<MyType, T>> selector)
{
return DbSet.Where(t => t.id < limit).Select(selector)
}
如何使用LINQ样式的查询来做同样的事情?
public IQueryable<T> GetInfo(long limit, Expression<Func<MyType, T>> selector)
{
var result = from t in DbSet
where t.id < limit
select selector(t) // doesn't work
return result
}
那么你可以使用:
var result = (from t in DbSet
where t.id < limit
select t).Select(selector);
...但你不能只使用查询表达式中的选择,做为所隐含包装,你不想额外的层。
目前尚不清楚为什么你想在这里使用查询表达式,请注意 - 我强烈建议你对这两种LINQ样式感到满意并使用当时更合适的东西 - 在这种情况下你是原始样式码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.