2011-02-25 52 views
0

新的WCF数据服务工具包允许您获取一个参数,其中包含一个名为FilterExpression的属性System.Linq.Expressions.Expression。该属性包含查询字符串中提供的所有过滤器,解析为表达式树。这对于通过执行过滤器服务器端来提高性能很有用。使Linq.Expression适合where谓词吗?

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

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

回答

0

其实,如果queryIQueryable<T>型的,你可以在Expression通过。如果您使用Linq to SQL,则应该可以访问IQueryable<T>对象。

1

对于任何类型为IQueryab<TEntityType>的Queryable,您需要的是任何可以为Expression< Func<TEntityType, bool> >的东西。