linq实现两表关联查询,使用group by进行分组

 FamilyAccountDataContext db = new FamilyAccountDataContext();//数据库实体上下文

     //linq实现两表关联查询,使用group by进行分组,group和by之间放你后面要select的对象(如果只有一个字段,可以直接写,如果有多个可以像我一样使用匿名对象)

    //select的时候也使用匿名对象的方式,并可以命名(如:totalExpense);

            var temp = from a in db.AccountTable
                       join p in db.InOrOutProjectTable
                       on a.InOrOutProjectID equals p.ID
                       where p.ProjectType == false & a.Date >= dateStart & a.Date < dateEnd
                       group new { p.ProjectName, a.Amount } by p.ProjectName into g

                       select new { g.Key, totalExpense = g.Sum(x => x.Amount) };


   //这里使用强类型的对象封装上面得到的temp里的字段,并加入到泛型集合中作为repeater控件的数据源

            List<Common.TotalAmountObj> list = new List<Common.TotalAmountObj>();
            foreach (var item in temp)
            {
                Common.TotalAmountObj totalExpense = new Common.TotalAmountObj();
                totalExpense.ProjectName = item.Key;
                totalExpense.Amount = item.totalExpense;
                list.Add(totalExpense);
            }
            this.repeaterExpenseReport.DataSource = list;
            this.repeaterExpenseReport.DataBind();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值