[c#]Linq 到 SQL 组由和总和在选择与实体

发布时间: 2017/2/25 3:31:26
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

这是 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 中的其与计算机?

解决方法 1:

你可以使用 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 属性和 Total 属性。

假设 db 是你 db 上下文对象和 Bills 是一个类型的属性DbSet<Bill>

DbFunctions.TruncateTime方法是在 System.Data.Entity 命名空间。所以请确保你有 using 语句以将其导入。

官方微信
官方QQ群
31647020