首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

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

2012-12-16 
问一个linq to sql 效率问题public static ListUser Search(SearchModel model){var query from u in U

问一个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;

热点排行