【发布时间】:2013-09-26 12:29:22
【问题描述】:
我的数据库中有一个 picturelikes 表。对于每一个喜欢的新图片,都会创建一个表格行。我想按上周和图片对这些喜欢进行分组,这意味着上周一张图片的所有喜欢都应该累积并成为一个喜欢。然后我将能够按他们的计数对它们进行排序。
这是我的风景如画的桌子:
public partial class picturelike
{
public int idpicturelike { get; set; }
public int idpictures { get; set; }
public int iduser { get; set; }
public System.DateTime iddatetime { get; set; }
public int iduserlikedby { get; set; }
public int likenumber { get; set; }
}
到目前为止,我能够编写此代码,这是我使用 linq 的 web api 控制器代码。
var combo = from p in db.picturelikes
group p by new {p.iddatetime, p.idpictures } into pgroup
let count = pgroup.Count()
orderby count descending
select new SortedDto
{
IdPictures=pgroup.FirstOrDefault().idpictures,
IdPictureLike = pgroup.FirstOrDefault().idpicturelike,
IdUser = pgroup.FirstOrDefault().iduser,
IdDatetime = pgroup.FirstOrDefault().iddatetime,
IdUserLikedBy = pgroup.FirstOrDefault().iduserlikedby,
LikeNumber = pgroup.FirstOrDefault().likenumber
};
return combo;
那我还需要做什么,如何让这段代码工作,我卡在这里,我该怎么做?
【问题讨论】:
-
您观察到的错误、结果、缺陷是什么?它是如何失败的?
-
上周,和过去 7 天一样?
-
Gusdor,它只是按我不想要的匹配日期进行分组,我想按过去 7 天分组
-
如果答案不能解决您所描述的问题,那么您的问题就是垃圾。考虑修改。
-
我不太明白。
group on the last 7 days,你的意思是group on each day和only for the last 7 days?
标签: c# sql asp.net-mvc linq lambda