首页 新闻 会员 周边

Lambda表达式高深问题

0
悬赏园豆:60 [已解决问题] 解决于 2013-05-17 10:54

先看下面的表达式:

Employees emp = data.Employees.Where(e => e.EmployeeID == 1).FirstOrDefault();

上面的表达式查出了EmployeeID为1的Employee,当然了前提是编译器知道EmployeeID是Employees的一个属性。

但是,有些情况是EmployeeID是我们后来通过反射才知道的属性,这种情况直接编译上面的语句是通不过的,因为这时编译器不识别EmployeeID。

对于上述问题怎么处理呢?

haue的主页 haue | 初学一级 | 园豆:117
提问于:2013-05-12 16:29
< >
分享
最佳答案
0

等待高手····

收获园豆:10
不负春光,努力生长 | 小虾三级 |园豆:1382 | 2013-05-14 21:54
其他回答(10)
0

你这反射是指?例如?

yyutudou | 园豆:997 (小虾三级) | 2013-05-12 17:11
0

这个问题有意思,关注一下

收获园豆:10
@@@一统@@@ | 园豆:1551 (小虾三级) | 2013-05-12 19:18
0

根据反射出来的东西,构建一个表达式树就可以了,你说的应该是动态查询之类的

收获园豆:5
多啦A梦的弟弟 | 园豆:46 (初学一级) | 2013-05-12 19:21

怎么构建?能说的详细点吗?

支持(0) 反对(0) haue | 园豆:117 (初学一级) | 2013-05-13 22:32
0

根据你的需求构造一个像“data.Employees.Where(e => e.EmployeeID == 1).FirstOrDefault();”的字符串,然后编译成表达式树,再进行执行。

收获园豆:5
terry59599s | 园豆:202 (菜鸟二级) | 2013-05-12 19:34

怎么构建?能说的详细点吗?

支持(0) 反对(0) haue | 园豆:117 (初学一级) | 2013-05-13 22:10
0

请参考 表达式树

收获园豆:5
sinhbv | 园豆:2579 (老鸟四级) | 2013-05-12 21:23
0
收获园豆:5
Lenic | 园豆:243 (菜鸟二级) | 2013-05-12 22:54
0

有意思,坐等答案

收获园豆:5
朝曦 | 园豆:1073 (小虾三级) | 2013-05-12 23:24
0

你反射成Object?

收获园豆:5
Eric.luo | 园豆:853 (小虾三级) | 2013-05-13 13:11
0

不太明白

jerry-Tom | 园豆:4077 (老鸟四级) | 2013-05-13 15:08
0

你需要传入的是这样的一个Expression

Expression<Func<Employee, bool>> predicate = e => true;  //选择所有的 employee.

predicate = e => e.EmployeeId == 1; // 选择Id 为1的employee
收获园豆:5
gunsmoke | 园豆:3592 (老鸟四级) | 2013-05-14 08:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册