1

在 ASP.NET MVC 4 中,我有一个 [HttpGet] 操作方法,它返回一个 JsonResponse。

    public JsonResult List(int domainId)
    {
            ....
    }

当我使用浏览器调用此方法时,通过键入 URL:localhost:43229/GroupsAjax/List?domainId=1,我必须等待大约 50 秒才能看到结果。

我的第一个想法是这个方法太慢了,但是通过添加断点我注意到它已经返回了。

断点

我也尝试过使用 Iexplorer 并且发生了同样的延迟。根据时间线,在 chrome 中,延迟与“等待时间”相关联

可能会发生什么?

4

1 回答 1

0

我正在审查(由我提出的)没有答案的旧问题,答案是/曾经:

我应该包含 AsJson() 代码:

    public dynamic AsJson()
    {
        return new
        {
           name = this.Name,
           membersCount = this.Members.Count()
        }
    }

查询是这样的:

 dynamic results = from g in groups.ToList()
                   select g.AsJson();

由于 ToList(),“this.Members.Count()”在内存中运行。

所以:查询分为几个部分:SQL To EntitiesSQL To Objects

第一部分很快,第二部分很慢(必须做 Members.Count() N 次,N 是“groups.ToList()”中的结果数

于 2014-04-24T16:31:55.910 回答