使用.Tolist()调用Model方法(有或没有)

时间:2012-02-12 02:50:50

标签: asp.net-mvc-3 entity-framework

我的asp.net MVc Web应用程序中有以下模型方法: -

public IQueryable<User> searchusers(string q, int id) 
        { 
            return from u in entities1.Users 
                 where (!u.Users_Classes.Any(c => c.ClassID == id) && (u.UserID.Contains(q)) 
                   select u; 
} 

将使用以下操作方法调用: -

    [AcceptVerbs(HttpVerbs.Post)]
                 public PartialViewResult Search(string q, int classid)
                {

                    var users = r.searchusers(q, classid).ToList();

                    ViewBag.id = classid;
// code does here
               }

现在如果我从我的动作方法中删除.ToList()代码仍然可以正常工作,那么使用.ToList()方法会带来任何优点或功能吗? BR

修改: - 这是我的动作方法的完整代码: -

[AcceptVerbs(HttpVerbs.Post)]
             public PartialViewResult Search(string q, int classid)
            {

                var users = r.searchusers(q, classid).ToList();
                                ViewBag.id = classid;
                return PartialView("_usersearch", users);

           }

1 个答案:

答案 0 :(得分:2)

当您调用ToList时,您要求实体框架立即执行查询,然后您将使用内存集合。否则,循环结果时将执行查询。