如何在实体框架中对一列进行求和

Dha*_*rma 9 c# entity-framework-4

我正在尝试总结一个列并明智地获取详细信息

我的表数据是

id   membername     cost
1   a               100
2   aa              100
3   a               100
4   aa                0
5   b               100
Run Code Online (Sandbox Code Playgroud)

在实体框架中,我尝试对成本列求和并得到这样的结果

membername             totalcost
a                      200
aa                     100
b                      100
Run Code Online (Sandbox Code Playgroud)

然后我这样做

var result = from o in db.pruchasemasters.Where(d => d.memberid == d.membertable.id && d.entrydate >= thisMonthStart && d.entrydate <= thisMonthEnd)
                     group o by new { o.membertable.members } into purchasegroup
                     select new
                     {
                         membername = purchasegroup.Key,
                         total = purchasegroup.Sum(s => s.price)
                     };
Run Code Online (Sandbox Code Playgroud)

如何阅读结果并且我的代码是否合适?

Vit*_*lik 18

这样的东西会起作用

    var result = db.pruchasemasters.GroupBy(o => o.membername)
                   .Select(g => new { membername = g.Key, total = g.Sum(i => i.cost) });

    foreach (var group in result)
    {
        Console.WriteLine("Membername = {0} Totalcost={1}", group.membername, group.total);
    }
Run Code Online (Sandbox Code Playgroud)

  • 有没有办法做类似的操作,但使用 Where 条件而不是 GroupBy?例如,我希望只返回一个人的会员名和总数。 (4认同)