如何將屬性選擇器的字符串表示形式轉換爲lambda表達式?將字符串轉換爲針對集合的Lambda表達式
輸入的格式爲:
"Child.Name"
我需要將其轉換成排序依據子句中使用的謂語;
query.OrderBy(x => x.Child.FirstOrDefault().Name);
是否有可能也有一個可行的解決方案,如果屬性不是一個集合,要與一個標準的屬性或字段,例如工作;
"Quantity"
會創建謂詞,例如;
x => x.Quantity
編輯:
只是試圖改寫上面的問題,如果我可以改變輸入字符串,纔有可能執行;
"Child.FirstOrDefault().Name"
作爲
x => x.Child.FirstOrDefault().Name
一個排序依據內?
你或許應該調查[動態LINQ(http://weblogs.asp.net/scottgu/dynamic- linq-part-1-using-the-linq-dynamic-query-library) – 2014-11-05 15:57:12
'Child'對象的類型是什麼? – mggSoft 2014-11-05 16:05:07
你是什麼意思*「我需要將其轉換爲謂詞」*?你是否已經擁有一個帶有「子集」屬性的對象? – 2014-11-05 16:08:18