当前位置:  开发笔记 > 编程语言 > 正文

多个LinqToSQL查询和性能

如何解决《多个LinqToSQL查询和性能》经验,为你挑选了1个好方法。

这样的事情会严重影响性能吗?

var myQuery = from c in Customers select c;

var filter1 = from c in myQuery where c.ID > 2 select c;

myQuery = filter1;

var filter2 = from c in myQuery where c.Name.Contains("r") select c;

myQuery = filter2;

当我这样做时,它似乎只在最后进行实际查询,而不是每个"var ...".到目前为止的所有内容似乎只是构造一个查询,所以看起来这样可以,并且与将所有过滤器放在1个查询中的性能差别不大.我错了,它实际上是在对数据库运行多个查询?

我正在尝试找出一种基于用户输入创建查询的好方法,以便他们可以根据不同的标准进行过滤.只要这样做不会占用大量时间,我就不会太担心性能.

我还发现了关于Dynamic Linq库的帖子,但使用它看起来很笨拙,我没有看到这样做的差别太大.



1> Jon Skeet..:

不,在您开始实际要求结果之前,它不会执行任何查询.以这种方式构建查询很好,这是LINQ的一个好处.

顺便说一下,它在LINQ to Objects中的工作方式相同(在延迟执行方面 - 实际的管道非常不同),只要你使用一个惰性查询操作符(基本上所有返回一个IEnumerable或者IOrderedEnumerable).

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有