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
语句来导入它。
这是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
语句来导入它。