动态构造 lambda
来源:互联网 发布:苏格兰折耳猫 知乎 编辑:程序博客网 时间:2024/06/01 09:38
Type type = obj.GetType();
var property = type.GetProperty(keyName);
object keyValue = property.GetValue(obj, null);
//Expression<Func<DataBase.NewsSystem, bool>> filter = x => x.NSiD == "F3A918C0-FC41-4AA2-8A6C-5E4BB4A20EC2";
var paramExpr = Expression.Parameter(typeof(T), "x");
MemberExpression namePropExpr = Expression.Property(paramExpr, keyName);
// 获取表示System.String.Equals方法的System.Reflection.MethodInfo
MethodInfo EqualsMethod = pk.First().Type.GetMethod("Equals", new Type[] { pk.First().Type });
// 创建表示value变量值的表达式
ConstantExpression nameValueExpr = Expression.Constant(keyValue, pk.First().Type);
// 创建表示name参数的表达式
MethodCallExpression nameContainsExpr = Expression.Call(namePropExpr, EqualsMethod, nameValueExpr);
//var paramRight = Expression.Parameter(typeof(string), "F3A918C0");
//Expression body = Expression.Equal(
var lambda = Expression.Lambda<Func<T, bool>>(nameContainsExpr, paramExpr);
var filter = lambda.Compile();
T updatedObj = Context.GetTable<T>().Single(filter);
SetValue<T>(ref updatedObj, obj);
- 动态构造 lambda
- 动态构造Lambda表达式
- 动态创建 Lambda 表达
- lambda 构造与析构
- lambda表达式:构造器引用
- Lambda FAQ_12.什么是构造函数引用?
- 动态构造的实践
- TreeView的动态构造
- dwz 动态构造树
- 构造动态数组
- 动态创建Lambda 表达式的例子!
- 实战Lambda表达式-动态构建
- 动态构建OrderBy的Lambda表达式
- 关于动态执行LAMBDA表达示
- 动态LINQ(Lambda表达式)构建
- 动态创建Lambda表达式实现高级查询
- C#动态构建lambda表达式(一)
- 使用Expression动态创建lambda表达式
- nyoj 82 迷宫寻宝(一)
- S2JDBC tutorial project
- HDU 4544
- MFC创建模态对话框
- Cut Ribbon
- 动态构造 lambda
- C#利用lambda表达式将函数作为参数或属性跨类传递
- Hat’s Words(hdu1247字典树)
- Linux下模块化编程生成函数库和编译方法
- ResearchGate
- Burning Midnight Oil
- nyoj 84 阶乘的0
- JAVA基础 (一) 并发 ThreadLocal与Synchronized 用哪一个好
- 我的HR管理原则是“红色的”