私は 2 つのテーブルを持ってpicture
おりpictureratings
、データベース内にあります。
public partial class picture
{
public int idpicture { 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 nuditylevel { get; set; }
public int fakeslevel { get; set; }
// This property will hold the total accumulated/summed
// up rating of a picture
public int totalrating { get; set; }
}
public partial class pictureratings
{
public int idrating { get; set; }
public int idpictures { get; set; }
public int iduser { get; set; }
public System.DateTime iddatetime { get; set; }
public int iduserrateddby { get; set; }
public int rating { get; set; }
}
評価ごとに新しいpictureratings
行が作成されます。pictureratings
写真IDでテーブルをグループ化し、いいねを数えたいと思います。それらのいいねをプロパティのpicture
テーブルに表示したい。totalrating
したがって、私のように、次のコードを書くことができます
var combo = from p in db.picturedetails
join l in db.picturelikes on p.idpictures equals l.idpictures into pl
select new LikesandPictureDetails
{
IdUserPic = p.iduser,
IdPicturess =p.idpictures,
Likes = p.likes,
NudityLevel = p.nuditylevel,
PicTitle = p.picTitle,
PicTime = p.pictime,
picFilename=p.picFilename,
Count=pl.Count(),
totalrating = pl.Average(c => c.likenumber) // This line is causing error
};
クエリの合計を返すために Web API を使用しています。、、、、などのpicture
プロパティを表示 しています。iduser
picTitle
picFilename
pictime
nuditylevel
fakeslevel
今のところ、すべてがスムーズに実行されますが、 totalrating = pl.Average(c => c.likenumber) を追加すると、例外が発生します
具体化された値が null であるため、値型 'Double' へのキャストが失敗しました。結果の型のジェネリック パラメーターまたはクエリのいずれかで、null 許容型を使用する必要があります。
エラーを取り除く方法は?