在Model中对Navigation属性执行Linq to SQL查询

时间:2017-11-09 15:53:30

标签: c# entity-framework

是否可以将Statistics.Sum(s => s.Conversions) linq查询设为Linq to SQL而不是Linq to Object,如下面的代码所示。每当我访问TotalConversions属性时,从数据库下载整个Statistics表,然后在本地执行SUM linq。我想在数据库服务器中以SQL作为。

public class User : Entity
{

    public int Id { get; set; }
    public string Email { get; set; }

    public virtual ICollection<Statistic> Statistics { get; set; }

    [NotMapped]
    public int TotalConversions
    {
        get
        {
            return Statistics.Sum(s => s.Conversions);
        }
    }

}

1 个答案:

答案 0 :(得分:0)

是的,但您需要引用DbContext。这是实体持久性无知的成本之一。

然后该属性看起来像:

return db.Users.Single(s => s.Id = this.Id).Statistics.Sum(s => s.Conversions);