日期:2014-05-17  浏览次数:20469 次

有没有办法提高查询速度啊?
我现在在代码中将数据从数据库中取出来然后放到List集合中,然后从这个List中查找需要的数据。这就是传统的思路,但是现在因为查询次数比较多,速度感觉不太理想,有没有更好的数据集合会提高查询速度,或者有没有比较好的查询方法啊?
我写的代码很简单,就是传统的查询

先有一个List集合。
List<UserOURoleInfo> listAllUser 
然后:
foreach (string roleID in arRoleID)
                            {
                                int intRoleID = Convert.ToInt32(roleID);

                                var objUsers = from u in listAllUser
                                               where u.RoleID == intRoleID && u.OUID == intOUIDS
                                               select u;
                                objUserList.AddRange(objUsers);
                            }


------解决方案--------------------
你不会每次都到数据库里listAllUser吧?





------解决方案--------------------
//可以这样写 ,不过有个问题 listAllUser是不是还可以在过滤掉intOUIDS 这样listAllUser的结果集是不是更少些
            var objUserList = arRoleID.SelectMany(c =>
            {
                return listAllUser.Where(x =>Convert.ToInt32(c) == x.RoleID && x.OUID == intOUIDS);
            }).ToList();