EF lambda 分組查詢中DateTime轉Date


現有的需求是把數據按照店鋪編號和申請時間進行分組查詢,分組的時候需要把申請時間去掉時間部分,僅保留有日期部分,試了很多都無果,期間還遇到了“無效的匿名類型成員聲明符。匿名類型成員必須使用賦值、簡單名稱或成員訪問來聲明。”這樣的提示錯誤,還是基礎沒打好,簡單的弄個變量,賦值就可以了,主要用到了方法:DbFunctions.CreateDateTime()。下面把分組查詢的代碼貼出來

public List<BubbleGoodsByGroup> GetByGroup()
        {
            var query = _db.BubbleGoods
                .Where(a => a.AuditState == 0)
                .Where(u => ShopId == null || u.Uid == ShopId)
                .Where(u => GoodsId == null || GoodsId == 0 || u.GoodsSpecPrice.GoodsId == GoodsId)
                .Where(u => CreateBeginDate == null || u.CreateDate >= CreateBeginDate)
                .Where(u => CreateEndDate == null || u.CreateDate <= CreateEndDate).AsQueryable();
            var model = query.GroupBy(o => new { o.Uid, tempNewDate = DbFunctions.CreateDateTime(o.CreateDate.Year, o.CreateDate.Month, o.CreateDate.Day, 0, 0, 0) })
                .Select(o => new BubbleGoodsByGroup
                {
                    Uid = o.Key.Uid,
                    TotalApplyCount = o.Sum(a => a.ApplyCount),
                    TotalCount = o.Count(a => a.Id > 0),
                    ApplyDate = (DateTime)o.Key.tempNewDate
                })
                .OrderBy(u => u.Uid).ThenBy(u => u.ApplyDate)
                .Skip(PageSize * (PageIndex - 1))
                .Take(PageSize)
                .ToList();
            return model;
        }

參考鏈接:https://www.cnblogs.com/farb/p/EFSkillsCollection.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM