我想在運行時建立一個LINQ查詢,以便只選擇某些屬性。我曾經想過通過追加額外的.Select()調用來構建查詢,或者使用動態LINQ擴展來傳遞一列字符串(希望遠離構建字符串的查詢) 。然而,我目前的嘗試找到解決方案並沒有奏效。建立哪些屬性與LINQ選擇對象
2
A
回答
2
1
您需要查看linq表達式。這裏有一個小例子,它應該用於選擇一個屬性,選擇更多的屬性會變得更加困難,但是如果使用您選擇的屬性定義一個類型,通常是可行的(例如,不要在查詢中使用匿名類型正在生成)。
using System.Linq.Expressions;
...
IQueryable<T> query = someQuery;
Expression expression = query.Expression;
ParameterExpression obj = Expression.Parameter(query.ElementType, "obj");
MemberExpression property = Expression.PropertyOrField(obj, propertyName);
Expression<Func<T,bool>> lambda = Expression.Lambda<Func<T,bool>>(property, obj);
query = query.Where(lambda);
至少,那是一般的想法
+0
你可能是對的,現在是時候瞭解LINQ表達式樹的工作原理了。 – jwarzech 2009-08-19 15:08:24
0
賈斯汀評論,您的難度也會找到一個類型返回。 LINQ的優點是你有強類型的實體可以使用。如果這些不利於你的利益,或者你發現自己對穀物做了很多工作,那麼可能有更好的解決方案。
相關問題
- 1. Linq選擇某些屬性到另一個對象?
- 2. 使用Linq,按某些屬性排序對象並選擇前2個對象
- 3. LINQ基於對象內列表中的屬性選擇對象
- 4. Laravel選擇對象屬性
- 5. 確定哪些對象屬於選擇矩形(選取框)
- 6. LINQ:選擇一個對象,但改變一些屬性,而無需創建新對象
- 7. 建立出錯的JavaScript對象屬性
- 8. Linq選擇新對象性能
- 9. 使用Linq對象屬性構建表
- 10. 如何選擇在運行時爲JSON對象序列化哪些屬性?
- 11. 使用LINQ與某些類別的對象 - 「選擇」未找到
- 12. Linq和動態對象屬性在選擇幫助
- 13. C#/ LINQ選擇對象的子表具有相同屬性
- 14. LINQ匿名對象選擇屬性如果不爲空
- 15. 動態Linq - 如何從子屬性中選擇父對象
- 16. C#LINQ按對象屬性排序列表,選擇X Amount
- 17. 選擇對象與使用LINQ
- 18. 有條件加選擇的屬性建立與jQuery
- 19. 的LINQ從依賴於對象列表中選擇對象屬性
- 20. 如何創建具有選擇性屬性的對象?
- 21. 從PowerShell中的對象中選擇某些屬性
- 22. 與屬性選擇
- 23. AngularJS選擇與ng選項綁定到對象不屬性
- 24. 選擇加入對象的屬性
- 25. 動態選擇javascript對象屬性
- 26. 選擇數組成爲對象屬性
- 27. 從HTML選擇訪問對象屬性。
- 28. 設置對象屬性選擇
- 29. 多個屬性的選擇對象
- 30. 使用LINQ獲得與屬性的對象=另一個對象屬性
你能詳細一點嗎?你是否想讓用戶通過他們想要的字段? – 2009-08-19 14:38:04
用戶確切地選擇他們想要的信息。 – jwarzech 2009-08-19 14:39:21
是LINQ的一個要求嗎?我認爲不知道你的對象將會有哪些字段會使查詢的結果難以編碼。也許回到數據集的日子會更適合? – 2009-08-19 14:43:46