使Linq.Expression适合谓词的位置?

时间:2011-02-25 05:26:54

标签: linq

新的WCF数据服务工具包允许您获取一个参数,该参数包含一个名为FilterExpression的属性System.Linq.Expressions.Expression。此属性包含在解析为表达式树的查询字符串中提供的所有过滤器。这可以通过执行过滤器服务器端来提高性能。

但是,您不能将过滤器表达式传递给where子句。假设过滤器表达式是一个表达式类型,是否有一种简单的方法可以在服务器端linq to sql查询中使用它?

这不起作用:var query.Where(filterexpression).ToList();

2 个答案:

答案 0 :(得分:1)

对于Expression< Func<TEntityType, bool> >类型的任何可查询,您需要的是IQueryab<TEntityType>

答案 1 :(得分:0)

实际上,如果query的类型为IQueryable<T>,则可以传入Expression。如果您使用的是Linq to SQL,则应该可以访问IQueryable<T>个对象。