Linq Demo1

1.LinqToSql 多个字段groupBy 并添加总计列:
using (TravelBillEntities travelBill = new TravelBillEntities()) {
                var accountBill = travelBill.AccountBill.AsQueryable<AccountBill>();
                var payChannel = travelBill.PayChannel.AsQueryable<PayChannel>();
                EnumPayMethod etmp = (EnumPayMethod)int.Parse( PayMethodChooser1.PayMethod );
                if (etmp != EnumPayMethod.Unknown) {
                    int paymethodId = (int)etmp;
                    payChannel = payChannel.Where( t => t.PayMethod.PayMethodId == paymethodId );
                    }
                var query = from bill in accountBill
                            join channel in payChannel
                            on bill.PayChannelId equals channel.PayChannelId
                            group bill by new {
                                channel.PayChannelName,
                                channel.PayMethod.PayMethodName,
                                bill.Business.BusinessName,
                                bill.SettleStatus
                            }
                                into bc
                                select new {
                                    支付通道 = bc.Key.PayMethodName,
                                    借方 = bc.Sum( t => t.CreditAmount ),
                                    贷方 = bc.Sum( t => t.DebitAmount ),
                                    支付方法 = bc.Key.PayMethodName,
                                    交易类型 = bc.Key.BusinessName,
                                    结算状态 = bc.Key.SettleStatus,
                                    通道手续费 = bc.Sum( t => t.ChannelPayCost ),
                                    会员手续费 = bc.Sum( t => t.CustomerPayCost )
                                };
                var dataList = query.ToList();
                dataList.Add( new {
                    支付通道 = "总计",
                    借方 = (dataList.Sum( t => t.借方 )),
                    贷方 = (dataList.Sum( t => t.贷方 )),
                    支付方法 = string.Empty,
                    交易类型 = string.Empty,
                    结算状态 = default( int ),
                    通道手续费 = (dataList.Sum( t => t.通道手续费 )),
                    会员手续费 = (dataList.Sum( t => t.会员手续费 )),
                } );
                e.Result = dataList;
                }
2.

 LinqToSql使用小结

转载于:https://www.cnblogs.com/liulf/archive/2010/12/23/1914754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值