Expression封装
来源:互联网 发布:网络监控测试仪 编辑:程序博客网 时间:2024/05/29 18:57
Expression封装为 根据 Iqueryable,字段名,判断内容,得到包含的Iqueryable
/// <summary>
/// 泛型查找
/// </summary>
/// <param name="queryable">queryable对象,包含数据</param>
/// <param name="section">字段或属性名</param>
/// <param name="constCondition">属性或字段相比较的值</param>
public static IQueryable<T> MyLinq(IQueryable<T> queryable,string section,string constCondition)
{
Type queryableType = queryable.GetType();
Type queryableTypes = typeof(IQueryable<T>);
Type ObjType = typeof(T);
ParameterExpression parameterExpression = Expression.Parameter(typeof(IQueryable<T>), "m");
// MethodInfo arg_FE_1 = (MethodInfo)MethodBase.GetMethodFromHandle(ldtoken(Where()));
Type genericType = typeof(Queryable);
MethodInfo mi = genericType.GetGenericMethod("Where", BindingFlags.Public, new Type[] { genericType, typeof(Expression<Func<IQueryable<T>, bool>>) });
MethodInfo arg_FE_1 = mi.MakeGenericMethod(typeof(T));
ParameterExpression parameterExpression2 = Expression.Parameter(typeof(T), "u");
Expression[] expr_84 = new Expression[2];
expr_84[0] = parameterExpression;
expr_84[1] = Expression.Quote
(
Expression.Lambda<Func<T, bool>>
(
Expression.Call
(
Expression.Property
(
parameterExpression2,
typeof(T).GetProperty(section)//(MethodInfo)MethodBase.GetMethodFromHandle(ldtoken(get_Name()))
),
typeof(string).GetMethod("Contains"),//(MethodInfo)MethodBase.GetMethodFromHandle(ldtoken(Contains())),
new Expression[] { Expression.Constant(constCondition, typeof(string)) }
),
new ParameterExpression[]{ parameterExpression2 }
)
);
Expression body = Expression.Call(null, arg_FE_1, expr_84);
var expression = Expression.Lambda<Func<IQueryable<T>, IQueryable<T>>>
(
body,
new ParameterExpression[] { parameterExpression }
);
var list = expression.Compile()(queryable);
return list;
}
}
- Expression封装
- Hibernate查询条件封装对象Expression介绍
- [[ expression ]]
- expression
- Expression
- Expression
- Expression
- Expression Expression tree Expression evaluation
- regular expression
- 14.14 Expression
- Expression Templates
- Regular Expression
- regular expression
- Cron Expression
- Expression Tree
- 关于expression
- Regular Expression
- hibernate Expression
- C语言笔记 指针 数组
- values资源之array和RecyclerView的使用
- tomcat8.5 managerApp 页面加载问题
- BZOJ1041: [HAOI2008]圆上的整点
- 数据结构课程设计——CET-6报名管理系统
- Expression封装
- Linux下安装snort(ubuntu为例)
- easyUI结合的moment.js
- iOS 获取模拟器上的沙盒路径
- spring事务管理默认回滚异常
- listview的再次使用(两个集合中的数据集中显示并使用framelayout布局表示系统应用与非系统应用)
- 随便乱扯:关于IT与风投
- java_螺旋方阵
- NGUI复选框Toggle