我在使用 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; }
}
现在,我想做:
Article a = ...;
vm.Count = a.Visits.Count;
问题是,据我所知,这首先导致整个列表被获取,然后是它的计数。在循环中执行此操作时,会产生性能问题。
我认为这是由于对象“过于具体”,所以我试图将Visits.Count
调用尽可能地移回存储库(这样我们就可以直接使用 DbContext)。那没有帮助。
有什么建议么?