使Linq.表达式适合where谓词?

使Linq.表达式适合where谓词?,linq,Linq,新的WCF数据服务工具包允许您获取一个参数,该参数包含一个名为FilterExpression的属性,类型为System.Linq.Expressions.Expression。此属性包含解析为表达式树的查询字符串中提供的所有筛选器。这有助于通过在服务器端执行筛选器来提高性能 但是,不能只将筛选器表达式传递给where子句。假设过滤器表达式是表达式类型,有没有一种简单的方法可以在服务器端linq到sql查询中使用它 这不起作用:var query.Where(filterexpression.T

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

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


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

实际上,如果
query
类型为
IQueryable
,则可以传入
表达式。如果您使用的是Linq to SQL,您应该可以访问
IQueryable
对象。

对于任何类型的
IQueryab
查询,您需要的是任何可以是
Expression
的东西