Chr*_*ris 10 c# sum linq-to-sql
我有一个LINQ-to-SQL查询,它运行在一个表中,我想选择3个总和 - "Rate"和"AdditionalCharges"的总和,所以我有这样的事情:
var sums = from d in dc.Deliveries
where d.TripDate == DateTime.Now
select new
{
Rate = d.Rate,
AdditionalCharges = d.AdditionalCharges
};
Run Code Online (Sandbox Code Playgroud)
但是,显然这会为每次传递返回一个新行,这意味着我必须在之后总结它们 - 这看起来效率很低.有没有更简单的方法?
Dan*_*kle 16
我知道这是一个老问题,但是嘿,我找到了,所以希望这会帮助别人......
您也可以使用Fluent语法执行此操作:
var sums = dc.Deliveries
.Where(d => d.TripDate == DateTime.Now)
.GroupBy(d => d.TripDate)
.Select(g =>
new
{
Rate = g.Sum(s => s.Rate),
AdditionalCharges = g.Sum(s => s.AdditionalCharges)
});
Run Code Online (Sandbox Code Playgroud)
希望这有助于某人......
Nin*_*Nye 13
如果使用查询语法,则可以执行以下操作
var data = dc.Deliveries.Where(d => d.TripDate == DateTime.Now)
var rateSum = data.Sum(d => d.Rate);
var additionalCharges = data.Sum(d => d.AdditionalCharges);
Run Code Online (Sandbox Code Playgroud)
这是我的头顶而没有经过测试
不确定,但你可以尝试下面的组再见功能
var sums = from d in dc.Deliveries
where d.TripDate == DateTime.Now
group d by new {d.Rate,d.AdditionalCharges,d.TripDate} into g
select new
{
Rate = g.Sum(s => s.Rate ),
AdditionalCharges = g.Sum(s => s.AdditionalCharges)
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
49101 次 |
| 最近记录: |