动态Linq选择

时间:2015-05-29 19:16:39

标签: linq select

我在围绕Dynamic LinQ选择时遇到了麻烦。我已经阅读过Scott Gu的博客和每个建议的帖子,但仍然无法理解我的小脑袋。我需要查询传入变量的实体对象作为列名。假设一个实体(表)包含3列,名为:Mon,Tue&星期三。这些包含每条记录的数据。我不知道要在编译时命中的列,所以我需要将列名传递给查询。如何使用DLink或直接使用表达式树来完成此操作?

1 个答案:

答案 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);