读书人

问一个linq to sql 效率有关问题

发布时间: 2012-12-16 12:02:32 作者: rapoo

问一个linq to sql 效率问题


public static List<User> Search(SearchModel model){
var query =
from u in Users;
if(string.IsNullOrEmpty(model.Name) == false){
query = query.Where(m => m.Name.IndexOf(model.Name) >= 0);
}
if(string.IsNullOrEmpty(model.Address) == false){
query = query.Where(m => m.Address.IndexOf(model.Address) >= 0);
}
......
return query.List<User>();
}


查询这样写,dot net 是向数据库发送一次查询,还是每调用一次 Where,进行一次查询?
[最优解释]
Where 是延迟查询操作符
方法会在最后执行到 .ToList()这个非延迟操作符的时候,去数据库查询数据
所以只会和数据库通信一次
[其他解释]
晕死,没写对,应该是
var query =
from u in Users
select u;

读书人网 >.NET

热点推荐