在ASP.NET MVC 4中,我有一个[HttpGet]动作方法,它返回一个JsonResponse。
public JsonResult List(int domainId)
{
....
}
当我使用浏览器调用此方法时,通过键入URL:localhost:43229 / GroupsAjax / List?domainId = 1,我必须等待50秒才能看到结果。
我的第一个想法是该方法太慢,但通过添加断点,我注意到它已经返回。
我也尝试过Iexplorer并且发生同样的延迟。 在chrome中,根据时间表
,滞后与“等待时间”相关联可能会发生什么?
答案 0 :(得分:0)
我在没有答案的情况下回顾旧问题(我),答案是:
我应该包含AsJson()代码:
public dynamic AsJson()
{
return new
{
name = this.Name,
membersCount = this.Members.Count()
}
}
查询是这样的:
dynamic results = from g in groups.ToList()
select g.AsJson();
" this.Members.Count()"由于ToList()而在内存中运行。
所以:查询分为几部分: SQL到实体和 SQL到对象
第一部分很快,第二部分很慢(必须做会员.Count()N次,N是结果数" groups.ToList()"