C# 实体框架5-按计数加载所有行

C# 实体框架5-按计数加载所有行,c#,entity-framework-5,C#,Entity Framework 5,我有一张非常大的桌子,有超过一百万行 简单: public partial class Country { public Country() { this.Streets = new HashSet<Streets>(); } public int Id { get; set; } public virtual ICollection<Street> Streets { get; set; } } public

我有一张非常大的桌子,有超过一百万行

简单:

public partial class Country
{
    public Country()
    {
        this.Streets = new HashSet<Streets>();
    }

    public int Id { get; set; }
    public virtual ICollection<Street> Streets { get; set; }
}

public partial class Street
{
    public int Id { get; set; }
    public int CountryId { get; set; }
    public virtual Country Country { get; set; }
}
EF为您提供了一种通过延迟加载访问相关表的简单方法:

Country.Streets.Count()
这个方法非常好用,但是。。。出于某种原因,它正在加载相关的总计表

为什么??我怎样才能改变这种行为


提前感谢

请查看这两个链接,它们可能有助于解决您的问题:

  • 为什么?

    因为它不是为这个目的而制造的

  • 我怎样才能改变这种行为

    你真的不能-只有当你开始和表达式提供者乱搞的时候

  • 注意:

    如果我们检索50条记录,并且在每一行上进行“计数”,我们将有超过50(!)个对MSSQL的请求,结果是性能非常差

    最好的解决方案是这样做:

    ct.Country.Select(v => new { Country = v, TotalStreets = v.Streets.Count() });
    

    请不要告诉我只有一个请求。

    1。这是我在帖子中展示的。2.非常丑陋-条目(blog).Collection(b=>b.Posts.Query().Count();-有好办法吗?
    ct.Country.Select(v => new { Country = v, TotalStreets = v.Streets.Count() });