/// <summary>///when the constructor uses true: single and valid, multiple and valid, single or invalid, multiple or invalid, or valid when mixed with and after///when the constructor uses false: single and invalid, multiple and invalid, single or valid, multiple or valid;/// </summary> Public Static classpredicateextensions{ Public StaticExpression<func<t,BOOL>> true<t> () {returnf =true; } Public StaticExpression<func<t,BOOL>> false<t> () {returnf =false; } Public StaticExpression<func<t,BOOL>> or<t> ( ThisExpression<func<t,BOOL>> expression1, Expression<func<t,BOOL>>expression2) { varInvokedexpression = Expression.invoke (expression2, expression1. Parameters.cast<expression>()); returnExpression.lambda<func<t,BOOL>>(Expression.or (expression1. Body, Invokedexpression), expression1. Parameters); } Public StaticExpression<func<t,BOOL>> and<t> ( ThisExpression<func<t,BOOL>> expression1, Expression<func<t,BOOL>>expression2) { varInvokedexpression = Expression.invoke (expression2, expression1. Parameters.cast<expression>()); returnExpression.lambda<func<t,BOOL>>(Expression.and (expression1. Body, Invokedexpression), expression1. Parameters); }}
Call Method:
New Hubdatadatacontext (); var predicate = predicateextensions.false <T_DISPATCH>1); var 3
Transferred from: http://www.cnblogs.com/ejiyuan/archive/2009/07/14/1523515.html
"Go" dynamic or query about LINQ