Linq to SQL Group by and sum in select with entity

Linq to SQL Group by and sum in select with entity

这是mysql查询:

select 
    convert(date,convert(char(11),[Bill Date])) as date,
    SUM(Amount) as total from Bills
group by [Bill Date]
order by date asc

它对 SQL 实体的 LINQ 是什么?

您可以使用 LINQ GroupBy 方法和 Sum 方法

您可以在 BillDate 日期时间字段上使用 DbFunctions.TruncateTime 方法来消除日期分组时的时间戳部分(假设您想要获取每一天的总数 )

var groupedSum= db.Bills.GroupBy(x => DbFunctions.TruncateTime(x.BillDate))
                  .Select(x => new
                                 {
                                     Total= x.Sum(g => g.Amount),
                                     Date = x.Key
                                 }).OrderBy(f=>f.Date).ToList();

这为您提供了一个匿名对象列表,其中包含 Day 属性 和 Total 属性.

假设 db 是您的数据库上下文对象并且 Bills 是类型 DbSet<Bill>

的 属性

DbFunctions.TruncateTime 方法在 System.Data.Entity 命名空间中。因此,请确保您有一个 using 语句来导入它。