【问题标题】:how to sum a column in entity framework如何对实体框架中的列求和
【发布时间】:2016-02-17 14:42:10
【问题描述】:

我正在尝试对一列求和并获取成员的详细信息

我的表格数据是

id   membername     cost
1   a               100
2   aa              100
3   a               100
4   aa                0
5   b               100

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

membername             totalcost
a                      200
aa                     100
b                      100

那我就这么做了

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)
                     };

我如何阅读结果以及我的代码是否正确?

【问题讨论】:

  • 匿名类型是只读的,但你说的“我怎么读这个”是什么意思?

标签: c# entity-framework-4


【解决方案1】:

类似的东西会起作用

    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);
    }

【讨论】:

  • 有没有办法进行类似的操作,但使用 Where 条件而不是 GroupBy?例如,我希望只返回一个人的成员名和总数。
  • 在我的问题中,如果您输入 select,您也可以使用 foreach 并通过 key.membername 和单人获取
  • @AllenWang db.pruchasemasters.GroupBy(o =&gt; "1")... 将生成没有group by的sql查询
猜你喜欢
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
相关资源
最近更新 更多