可能很多的程序也和我有這個疑惑
我在一個方法里這樣子寫
var users=Db.TbUser;
var validUsers=users.Where(o=>o.CoClosed==false);
目地是為了獲取 用戶表中的有效用戶
如果我是按以上的方法查詢
是不是先把表中所有的數(shù)據(jù)查詢出來還回結(jié)果集,然后再對結(jié)果集進行查詢?
如果換成?
var validUsers=Db.TbUser.Where(o=>o.CoClosed==false);
會不會提高效率?
4 回答

慕村225694
TA貢獻1880條經(jīng)驗 獲得超4個贊
Linq的的Where或者其他條件方法,相當于Sql的拼接,真正執(zhí)行是在ToList(),F(xiàn)irst() 等獲取結(jié)果的時候執(zhí)行的。
你可以一邊單步調(diào)試,一邊通過SqlProfile 查看sql的調(diào)用就知道了。

www說
TA貢獻1775條經(jīng)驗 獲得超8個贊
如果你用的哦不是linq to sql 的話 是沒什么差別的。linq to sql 有個 生產(chǎn)sql 再查詢的話,也就是一次連接數(shù)據(jù)庫,是最佳的,如果你寫的對會連接兩次數(shù)據(jù)庫

UYOU
TA貢獻1878條經(jīng)驗 獲得超4個贊
兩種寫法沒有什么區(qū)別 只是前一種多了一個臨時變量而已
LINQ只會在用到這個查詢的進修才會去查
WHERE是延遲查詢操作符
數(shù)據(jù)不會加載到內(nèi)存中
- 4 回答
- 0 關注
- 447 瀏覽
添加回答
舉報
0/150
提交
取消