我想知道在LINQ中构建动态查询的最佳方法是哪种。查询将是复杂和嵌套的。在搜索时我发现了一些方法:
可能有更多选择。哪种方式最好?
答案 0 :(得分:1)
这取决于您的情况:您需要多快,您的起点是什么,等等。在一个不受约束的世界中,我认为最好的事情是推出自己的库来构建动态查询。你可以使用Scott或Joseph的作品作为灵感,但最终它在Linq.Expression库中都“低谷”。
“自己动手”方法的一个优点是您不需要从代码桥接到某人的框架。相反,您可以直接编写.NET API代码。当您已经拥有动态查询的表示时,这可能很有用,例如,在通过UI,XML文件等呈现给用户的模型中。您只需要递归地遍历该表示,并生成系统.Linq.Expression作为回报。
FWIW,我的公司在.NET 3.5发布时采用了这种方法,我们对结果非常满意。
答案 1 :(得分:-1)
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 (Language-Integrated Query)。它包含从入门到示例教程的所有内容