簡體   English   中英

在c#中構建動態linq查詢的最佳方法?

[英]best way to build the dynamic linq queries in c#?

我想知道在LINQ中構建動態查詢的最佳方法是哪種。 查詢將是復雜和嵌套的。 在搜索時我找到了幾種方法:

  1. Linq動態(System.Linq.Dynamic)
  2. Albahari的Predicate建設者課程
  3. Linq.Expression

可能有比這些更多的選擇。 哪種方式最好?

這取決於您的具體情況:您需要多快,起點是什么,等等。 在一個不受約束的世界中,我認為最好的事情是推出自己的庫來構建動態查詢。 您可以使用Scott或Joseph的作品作為靈感,但最終它在Linq.Expression庫中“全部結束”。

“自己動手”方法的一個優點是您不需要從代碼橋接到某人的框架。 相反,您可以直接編寫.NET API代碼。 當您已經擁有動態查詢的表示時,這可能很有用,例如,在通過UI,XML文件等呈現給用戶的模型中。您只需要遞歸地遍歷該表示,並生成系統.Linq.Expression作為回歸。

FWIW,我的公司在.NET 3.5發布時采用了這種方法,我們對結果非常滿意。

Linq查詢可以用兩種方式編寫,讓您使用任何類型的嵌套。

查詢語法

IEnumerable<int> numQuery1 = 
        from num in numbers
        where num % 2 == 0
        orderby num
        select num;

方法語法

 IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n);

有關Linq的更多信息,您可以訪問Microsoft的LINQ(語言集成查詢) 它包含從入門到示例教程的所有內容

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM