首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在c#中构建动态linq查询的最佳方法?

在c#中构建动态linq查询的最佳方法?
EN

Stack Overflow用户
提问于 2011-11-28 03:54:54
回答 2查看 767关注 0票数 3

我想知道在LINQ中构建动态查询的最佳方法是什么。查询将是复杂的和嵌套的。在搜索过程中,我找到了几种方法:

  1. Linq (System.Linq.Dynamic)
  2. Albahari谓词生成器类
  3. Linq.Expression

可能有比这些更多的选择。哪种方式是最好的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-28 04:21:12

这取决于你的环境:你需要它的速度有多快,你的起点是什么,等等。在一个不受约束的世界中,我认为最好的方法是滚动自己的库来构建动态查询。您可以使用Scott或Joseph的工作作为一种灵感,但最后,在Linq.Expression库中,所有的工作都是“自下而上”的。

“自己动手”方法的一个优点是,您不需要从代码连接到某人的框架。相反,您可以直接将代码编写到.NET API。当您已经有了动态查询的表示时(例如,在通过UI向用户呈现的模型中)、在XML文件中等等时,这可能很有用。您所需要的只是递归地遍历该表示,并生成System.Linq.Expression作为返回。

FWIW,当.NET 3.5发布时,我的公司采取了这种方法,我们对结果非常满意。

票数 1
EN

Stack Overflow用户

发布于 2011-11-28 06:04:35

Linq查询可以用两种方式编写,并允许您使用任何类型的嵌套。

查询语法

代码语言:javascript
运行
复制
IEnumerable<int> numQuery1 = 
        from num in numbers
        where num % 2 == 0
        orderby num
        select num;

方法语法

代码语言:javascript
运行
复制
 IEnumerable<int> numQuery2 = numbers.Where(num => num % 2 == 0).OrderBy(n => n);

有关Linq的更多信息,您可以访问微软的语言集成查询。它包含了从入门到示例教程的所有内容。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8291375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档