1

データベースに、picturelikes テーブルがあります。テーブル行のような新しい画像ごとに作成されます。これらのいいねを lastweek と pictureid でグループ化したいと思います。つまり、先週の 1 つの pic に対するすべてのいいねが蓄積され、1 つのいいねになる必要があります。

これは私の絵のようなテーブルです:

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;

他に何をする必要がありますか、このコードを機能させる方法、ここで立ち往生しています、どうすればいいですか?

4

2 に答える 2

0

先週の行のみを選択するにはwhere、linq ステートメントに句を追加できます。

where p.iddatetime > (DateTime.Today - TimeSpan.FromDays(7))
于 2013-09-26T12:49:46.920 に答える