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