私のMVC5アプリケーションコントローラでループを行い、すべてのタイムラインポストを取得しようとしています。画像がポストにアップロードされている場合は画像が表示されます。画像が存在する3つのテーブルを結合する
以下のコードはすべて投稿と画像を取得しますが、3枚の画像をアップロードして同じ投稿を3回繰り返してもループバックされます。
これは正しい方法ではありませんか?
var query = (from i in db.Timeline
join u in db.Users on i.UserId equals u.Id
join f in db.UserFiles on i.Id equals f.TimelineId into ps
from f in ps.DefaultIfEmpty()
orderby i.PostDate descending
select new { i.Id, i.UserId, i.Post, i.PostDate, u.FirstName, u.ProfilePic, FileName = f == null ? "No image(s)" : f.FileName + "_thumb." + f.FileExtension }).ToList();
List<TimelineLoop> cModel = new List<TimelineLoop>();
foreach (var item in query)
{
cModel.Add(new TimelineLoop
{
Id = item.Id,
UserId = item.UserId,
Post = item.Post,
PostDate = item.PostDate,
Name = item.FirstName,
ProfilePic = item.ProfilePic,
FileName = item.FileName
});
}
return cModel;
その後、あなただけのグループごとに一度画像をアップロードする必要があります。 – jdweng