C# Linq到SQL Group by和select with实体中的sum

C# Linq到SQL Group by和select with实体中的sum,c#,asp.net,linq,asp.net-mvc-3,C#,Asp.net,Linq,Asp.net Mvc 3,这是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 它的LINQ到SQL的实体是什么?您可以将LINQGroupBy方法与Sum方法结合使用 您可以使用BillDate datetime字段上的DbFunctions.TruncateTime方法,

这是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

它的LINQ到SQL的实体是什么?

您可以将LINQ
GroupBy
方法与
Sum
方法结合使用

您可以使用BillDate datetime字段上的
DbFunctions.TruncateTime
方法,在对日期进行分组时消除时间戳部分(假设您希望获得每天的总计)

这将为您提供一个包含
Day
属性和
Total
属性的匿名对象列表

假设
db
是您的db上下文对象,
Bills
是类型为
DbSet


DbFunctions.TruncateTime
方法位于
System.Data.Entity
命名空间中。因此,请确保您有一个使用语句导入的

账单日期的类型是什么?我很好奇你为什么要打转换电话?“Bill Date”是datetime。我需要更改以纳入图表我无法调用[(DbFunctions)您不能呼叫是什么意思?是什么阻止您这样做?匿名类型属性名称应为Date,解决方案还需要OrderByclause@MrinalKamboj答案主要是展示如何进行分组!因此,这不是一个提供像素完美代码供复制和粘贴的地方!感谢您指出OrderBy,不过,我会解决这个问题 it@bao4461826,选中此项,您需要名称空间
System.Data.Entity
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();