我在围绕Dynamic LinQ选择时遇到了麻烦。我已经阅读过Scott Gu的博客和每个建议的帖子,但仍然无法理解我的小脑袋。我需要查询传入变量的实体对象作为列名。假设一个实体(表)包含3列,名为:Mon,Tue&星期三。这些包含每条记录的数据。我不知道要在编译时命中的列,所以我需要将列名传递给查询。如何使用DLink或直接使用表达式树来完成此操作?
答案 0 :(得分:1)
不需要动态LINQ ...
var columniwant="Mon"; // Or "Tue" or "Wed"
var query=db.stuff here;
IQueryable<string> result;
switch(columniwant)
{
case "Mon": result=query.Select(q=>q.Mon); break;
case "Tue": result=query.Select(q=>q.Tue); break;
case "Wed": result=query.Select(q=>q.Wed); break;
}
那就是说,我认为这样可行:
var result=db.stuff here.Select(columniwant);