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

标签 c# linq dynamic

我想知道哪种是在 LINQ 中构建动态查询的最佳方式。查询将是复杂的和嵌套的。在搜索时我发现了几种方法:

  1. Linq 动态 (System.Linq.Dynamic)
  2. Albahari 的谓词构建器类
  3. Linq.Expression

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

最佳答案

这取决于您的情况:您需要多快的速度、您的起点是什么等等。在不受约束的世界中,我认为最好的办法是推出自己的库来构建动态查询。您可以从 Scott 或 Joseph 的作品中获得灵感,但最终都在 Linq.Expression 库中“触底”。

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

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

关于c# - 在 C# 中构建动态 linq 查询的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291375/

相关文章:

C# 如何使用 linq 按索引对文件列表进行排序

c# - 无法在 Visual Studio 2015 中运行迁移

c# - 无法访问转换查询中的表(从纯 SQL 到 LINQ)

sql - LINQ、Skip、OrderBy 和 SQL Server 2000

结构中动态数组中结构中动态分配数组的 C 语法

python - 我怎样才能用kv语言动态地制作很多按钮?

c# - 信用卡号应该存储为字符串还是整数?

vb.net - LINQ - 按年和月分组

javascript - 如何用JS生成HTML让Google检测

c# - 如何在 WPF (MVVM) 中绑定(bind)数据网格列宽