小编Nik*_*asJ的帖子

如何以最有效的方式获取懒惰列表的数量?

我在EF查询时遇到了一些性能问题.

我们基本上有这个:

public class Article
{
    public int ID { get; set; }
    public virtual List<Visit> Visits { get; set; }
}
public class Visit
{
    public int? ArticleID { get; set; }
    public DateTime Date { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在,我想做:

Article a = ...;
vm.Count = a.Visits.Count;
Run Code Online (Sandbox Code Playgroud)

问题是,从我可以收集的内容来看,这首先导致整个列表被提取,然后是它的计数.在循环中执行此操作时,会产生性能问题.

我认为这是由于对象"太具体",所以我试图尽可能地将Visits.Count调用移回存储库中(这样我们就可以直接使用DbContext了).这没有用.

有什么建议?

c# asp.net-mvc entity-framework entity-framework-4

5
推荐指数
1
解决办法
358
查看次数