我使用動態LINQ和今天我想建立一個稍微複雜的嵌套查詢:如何在動態Linq查詢中嵌套OrderBy?
"Composition
.Where(((ExpirationDate > DateTime.UtcNow.Date) && (ExpirationDate.Year != 9999)))
.OrderBy(\"ExpirationDate ASC\")
.Select(ExpirationDate)
.FirstOrDefault() == @0"
(休息時間只有那裏可讀性在這個崗位,不是真的存在在代碼)
該查詢由一個字符串變量保存並傳遞給此:
private static Func<IQueryable<T>, object, IQueryable<T>> CreateWhereExpression<T>(string whereClause) where T : class
{
return (q, o) => q.Where(whereClause, o);
}
它愉快地創建Where表達式。 (請注意,whereClause包含上面的確切字符串「Composition.Where ......」) 但只要它的時間來執行,它會抱怨:
沒有適用的骨料方法「排序依據」存在
所以我的問題是,我做錯了什麼?我怎樣才能讓嵌套的OrderBy工作?
你是不是想解析'LINQ'?動態LINQ不支持解析自己的語法。 – 2014-09-26 06:42:09
是的,我試圖讓Dynamic Linq將該字符串解析爲Linq查詢。我也試過用Linq語法'.OrderBy(ExpirationDate)',但我得到了同樣的錯誤。我試圖完成這樣的事情相似:http://stackoverflow.com/questions/10314708/how-to-build-a-nested-query-with-the-dynamic-linq-library但與orderby查詢。 – Vincent 2014-09-26 06:54:02