新的WCF数据服务工具包允许您获取一个参数,该参数包含一个名为FilterExpression的属性System.Linq.Expressions.Expression。此属性包含在解析为表达式树的查询字符串中提供的所有过滤器。这可以通过执行过滤器服务器端来提高性能。
但是,您不能将过滤器表达式传递给where子句。假设过滤器表达式是一个表达式类型,是否有一种简单的方法可以在服务器端linq to sql查询中使用它?
这不起作用:var query.Where(filterexpression).ToList();
答案 0 :(得分:1)
对于Expression< Func<TEntityType, bool> >
类型的任何可查询,您需要的是IQueryab<TEntityType>
。
答案 1 :(得分:0)
实际上,如果query
的类型为IQueryable<T>
,则可以传入Expression
。如果您使用的是Linq to SQL,则应该可以访问IQueryable<T>
个对象。