0

mydatabase には、picturedetails と picture likes の 2 つのテーブルがあります。

public partial class picturedetail
{
    public int idpictures { get; set; }
    public int iduser { get; set; }
    public string picTitle { get; set; }
    public string picFilename { get; set; }
    public System.DateTime pictime { get; set; }
    public int likes { get; set; }
    public int nuditylevel { get; set; }
    public int fakeslevel { get; set; }
}

  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; }
}

匿名型エラーを回避するためのデータ転送オブジェクト (DTO)

  public class LikesandPictureDetails
{
    public int IdPicturess { get; set; }
    public int IdUserPic { get; set; }
    public string PicTitle { get; set; }
    public string picFilename { get; set; }
    public System.DateTime? PicTime { get; set; }
    public int Likes { get; set; }
    public int NudityLevel { get; set; }
    public int FakesLevel { get; set; }
    public int IdPicturelike { get; set; }
    public int IdUser { get; set; }
    public System.DateTime? IdDatetime { get; set; }
    public int IduserLikedby { get; set; }
    public int LikeNumber { get; set; }
    public int IdPictures { get; set; }
    public float totalrating { get; set; }
    public int Count { get; set; }
}

写真の個々の評価を数えて、その数で割ることに成功しました。ここで、写真の詳細テーブルに合計を表示したいと思います。このことを達成する方法は?これは私のコードです:

var query =
            db.picturelikes.GroupBy(n => n.idpictures).Select(group =>
                     new LikesandPictureDetails
                     {
                         IdPictures = group.Key,
                         totalrating = (group.AsEnumerable().Sum(o => o.individualrating)) / group.Count(),

                     });

ここでは、likesandpicturedetails が dto として機能しています。

4

1 に答える 1