猿问

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

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

我在一个方法里这样子写

var users=Db.TbUser;

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

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

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

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

如果换成 

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

会不会提高效率?

噜噜哒
浏览 426回答 4
4回答

慕村225694

Linq的的Where或者其他条件方法,相当于Sql的拼接,真正执行是在ToList(),First() 等获取结果的时候执行的。 你可以一边单步调试,一边通过SqlProfile 查看sql的调用就知道了。

www说

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

慕的地6264312

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

UYOU

两种写法没有什么区别 只是前一种多了一个临时变量而已 LINQ只会在用到这个查询的进修才会去查 WHERE是延迟查询操作符 数据不会加载到内存中
随时随地看视频慕课网APP
我要回答