先看下面的表达式:
Employees emp = data.Employees.Where(e => e.EmployeeID == 1).FirstOrDefault();
上面的表达式查出了EmployeeID为1的Employee,当然了前提是编译器知道EmployeeID是Employees的一个属性。
但是,有些情况是EmployeeID是我们后来通过反射才知道的属性,这种情况直接编译上面的语句是通不过的,因为这时编译器不识别EmployeeID。
对于上述问题怎么处理呢?
等待高手····
你这反射是指?例如?
这个问题有意思,关注一下
根据反射出来的东西,构建一个表达式树就可以了,你说的应该是动态查询之类的
怎么构建?能说的详细点吗?
根据你的需求构造一个像“data.Employees.Where(e => e.EmployeeID == 1).FirstOrDefault();”的字符串,然后编译成表达式树,再进行执行。
怎么构建?能说的详细点吗?
有意思,坐等答案
你反射成Object?
不太明白
你需要传入的是这样的一个Expression
Expression<Func<Employee, bool>> predicate = e => true; //选择所有的 employee.
predicate = e => e.EmployeeId == 1; // 选择Id 为1的employee