使用字符串以便在LINQ中将属性设置为orderby

时间:2014-09-05 09:01:11

标签: c# linq

我有一个设置LINQ查询的函数,如下所示:

public List<company> FetchSortedList(string cat)
{
   var aDTOList = (from s in db.companies
                   where s.category == cat
                   orderby s.name
                   select s).ToList();
}

我现在需要更改此函数以允许用户传递另一个名为“field”的参数,该参数将是一个字符串值,其中包含要对其进行排序的列表的属性名称。无论如何,这样做与上述查询类似,即:

 public List<company> FetchSortedList(string cat, string prop)
 {
    var aDTOList = (from s in db.companies
                    where s.category == cat
                    orderby s[prop]
                    select s).ToList();
 }

(我知道上面的代码不起作用,只是询问是否有类似于做类似的事情)

或者我还需要做别的事吗?

1 个答案:

答案 0 :(得分:0)

您需要构建一个看起来像Expression的{​​{1}}并将其传递给x => x.SomePropertyToSortBy方法。