首页 新闻 搜索 专区 学院

linq 多个where查询会不会提交多次

0
悬赏园豆:10 [已解决问题] 解决于 2011-10-28 14:03

可能很多的程序也和我有这个疑惑

我在一个方法里这样子写

var users=Db.TbUser;

var validUsers=users.Where(o=>o.CoClosed==false);

目地是为了获取 用户表中的有效用户

如果我是按以上的方法查询

是不是先把表中所有的数据查询出来还回结果集,然后再对结果集进行查询?

如果换成 

var validUsers=Db.TbUser.Where(o=>o.CoClosed==false);

会不会提高效率?

wunaigong的主页 wunaigong | 初学一级 | 园豆:4
提问于:2011-05-30 09:33
< >
分享
最佳答案
1

Linq的的Where或者其他条件方法,相当于Sql的拼接,真正执行是在ToList(),First() 等获取结果的时候执行的。

你可以一边单步调试,一边通过SqlProfile 查看sql的调用就知道了。

收获园豆:10
Kain | 菜鸟二级 |园豆:445 | 2011-06-01 20:32
其他回答(3)
0

如果你用的哦不是linq to sql 的话 是没什么差别的。linq to sql 有个 生产sql 再查询的话,也就是一次连接数据库,是最佳的,如果你写的对会连接两次数据库

慧☆星 | 园豆:5555 (大侠五级) | 2011-05-30 09:52
1

不会,调适时可以看到生成的sql

today4king | 园豆:3299 (老鸟四级) | 2011-06-02 00:02
0

两种写法没有什么区别 只是前一种多了一个临时变量而已

LINQ只会在用到这个查询的进修才会去查

WHERE是延迟查询操作符

数据不会加载到内存中

Tim_ | 园豆:224 (菜鸟二级) | 2011-06-17 12:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册