亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

實體框架按月按天分組

實體框架按月按天分組

C#
慕神8447489 2022-07-23 09:07:55
我正在嘗試從每個月的 16 號到接下來的 15 號進行一次分組。Entity Framework 或 linq 可以嗎?var result = await db.Orders.Where(o => o.OrderDate > date)                             .GroupBy(...)                             .ToListAsync();
查看完整描述

1 回答

?
天涯盡頭無女友

TA貢獻1831條經驗 獲得超9個贊

要使這項工作與 EF 和 SQL 一起使用,您只需進行一些日期數學運算來計算用于分組的“期間”數字。基本上,您將每個日期轉換為月份,偏移 16 日,再加上年份的偏移量:

var result = await db.Orders.Where(o => o.OrderDate > date)
                            .GroupBy(o => o.OrderDate.Month + 12*(o.OrderDate.Year - date.Year) - (o.OrderDate.Day >= 16 ? 0 : 1))
                            .ToListAsync();

根據@stuartd,以下是如何找回每個組的時間段:

var resultp = result.Select(r => new {
                  PeriodBegin = new DateTime(date.Year + r.Key / 12 - (r.Key % 12 == 0 ? 1 : 0), r.Key % 12 == 0 ? 12 : r.key % 12, 16),
                  PeriodEnd = new DateTime(date.Year + r.Key / 12, r.Key % 12 + 1, 15),
                  Orders = r.ToList()
              }).ToList();


查看完整回答
反對 回復 2022-07-23
  • 1 回答
  • 0 關注
  • 131 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號