System.Linq.Expression查询转换

时间:2013-12-24 16:25:43

标签: kendo-asp.net-mvc

public DataSourceResult GetCustomerList (DataSourceRequest request)
{
   Result <==  List<Customer> Collection Object

   Result.Where( **p=> !p.State && ( (p=>p.Day>10 && p.Day<20) || (p.Name.Length<40 && p.EndsWith(“s”)  )** )

   //instead of the above query expression

   p=> !p.State && ( (p=>p.Day>10 && p.Day<20) || (p.Name.Length<40 && p.EndsWith(“s”)  ) <= Convert  CompositeFilterDescriptor 

   request.filtes.Add( CompositeFilterDescriptor)

   return Result.ToDataSourceResult(request);
}

根据示例,我想转换datasourcerequest

所在的查询过滤器

1 个答案:

答案 0 :(得分:0)

我们不希望所有集合在哪里,我们想用CompositeFilterDescriptor创建相同的函数

我想创建CompositeFilterDescriptor但是 过滤器应该是相同的 P =&GT; !p.State&amp;&amp; ((p =&gt; p.Day&gt; 10&amp;&amp; p.Day&lt; 20)||(p.Name.Length&lt; 40&amp;&amp; p.EndsWith(“s”)) 如果; 结果。其中(p =&gt;!p.State&amp;&amp;((p =&gt; p.Day&gt; 10&amp;&amp; p.Day&lt; 20)||(p.Name.Length&lt; 40&amp;&amp; ; p.EndsWith(“s”)))输出=&gt; 10 肯定是; Result.ToDataSourceResult(请求);输出=大于10

结果应该是相同的