我在动态LinQ选择中遇到了麻烦。我读了Scott Gu的博客和每一篇建议的文章,但我的小大脑仍然无法理解。我需要查询一个实体对象,为列名传递一个变量。假设一个实体(表)包含3列,命名为:Mon, Tue &这些包含每个记录的数据。我不知道在编译时要命中的列,所以我需要将列名传递到查询中。我如何使用DLink或直接使用表达式树来实现这一点?
不需要动态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);