类 Group 如下所示:
class Group {
public string Name { get; set; }
public virtual ICollection<Person> Members { get; set; }
public dynamic AsJson() {
return new
{
groupId = this.GroupId,
name = this.Name,
membersCount = this.Members.Count // issue!
};
}
}
我有一个列出所有组的视图,如下所示:
Group name Members
Bleh 15
Zort 40
Narf 12
该列表通过 AJAX 调用检索,该调用返回 JSON。该操作的代码如下:
groups = from g in (db.Groups where ... orderby g.Name).ToList()
select g.AsJson();
问题是这个列表太长了(比如 20 秒)。
我用维护的属性更改了“this.Members.Count”,即:
class Group {
public string Name { get; set; }
public virtual ICollection<Person> Members { get; set; }
public int MembersCount { get; set; } // added
public dynamic AsJson() {
return new
{
groupId = this.GroupId,
name = this.Name,
membersCount = this.MembersCount // changed
};
}
}
它开始正常工作(生成列表需要 1-2 秒)
有没有更好的方法来实现这一目标?我开始在维护属性 MemberCount 时遇到问题,因为在代码的几个部分中添加和删除了成员