c# - Linq to SQL Group by 和 sum in select with entity

标签 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 to SQL 是什么?

最佳答案

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

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

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 的匿名对象列表属性(property)和Total属性(property)。

假设db是你的数据库上下文对象和BillsDbSet<Bill> 类型的属性

DbFunctions.TruncateTime方法在System.Data.Entity命名空间。所以确保你有一个 using导入它的语句。

关于c# - Linq to SQL Group by 和 sum in select with entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41653298/

相关文章:

c# - 获取DataGrid中特定单元格的值

c# - 如何处理添加到列表事件?

c# - ASP.NET Web 应用程序 - 1 页 5000 行代码 - 可以接受吗?

c# - 在 linq 上选择之前检查空值

c# - 计算 IEnumerable 的计数(非通用)

java - 如何对实际上是 int[] 的无符号字节数组进行 base64 编码

c# - C# 中的引用继承

javascript - 在 ASP.Net C# 中使用 JavaScript 进行当前日期验证

asp.net - 如何从 Asp.net 5 中的 DbUpdateException 检索异常号

c# - 比较linq中的日期