我正在嘗試在一個類中做一個查詢排序方法,我做了工作。使用類方法來訂購查詢
我寫了下面,希望每當我將傳遞一個查詢作爲參數,它會命令對我來說:
public static void Ordenar<T>(IEnumerable<T> query, string columna, string orden)
{
if (!(String.IsNullOrEmpty(orden) || String.IsNullOrEmpty(columna)))
{
if (orden == "ASC") query.OrderBy(x => x.GetType().GetField(columna).GetValue(query));
if (orden == "DESC") query.OrderByDescending(x => x.GetType().GetField(columna).GetValue(query));
}
}
無濟於事。我無法設法使它像這樣工作:
db.Thingys.OrderBy(x=> x.Name);
我該如何「選擇」這個字段我想按一般的順序排列查詢? 請幫忙。 d:我使用ASP.NET MVC3
對不起,在這裏速度很慢,但LINQ OrderBy和OrderByDescending方法有什麼問題?爲什麼你需要一個自定義版本? –
當你說它不能工作,你的意思是使用上面的確切代碼?你的方法不返回序列'查詢'。你是否期望按照「參考」來訂購? IEnumerable不會發生這種情況。 – mdisibio
我想通過參數傳遞的模式來排序查詢。 我不知道它是不可能的「通過參考」。無論如何,該方法不起作用:即使在方法結束之前,查詢也不會被排序。 – Umagon