我目前有一个带有ID,名称和描述的'Inspirations'表,带有ID,名称和描述的'Photos'表,以及一个只有PhotoID和InspirationID外键的链接表InspirationPhotos。我想选择与每个InspirationID相关联的第一张照片。我知道我可能需要遍历Photos表,然后选择FirstOrDefault。
我想我需要像
这样的东西foreach (var inspiration in Inspirations)
{
inspiration.Photos.Where(x=>x.PhotoId == ?)
}
也许我应该在链接表中添加主键? 提前致谢
答案 0 :(得分:1)
你可以这样做:
var inspirationPhotos = db.Inspirations.Select(i => new {
Inspiration = i
, Photo = db.Photos.FirstOrDefault(p =>
db.InspirationPhotos.Any(ip =>
ip.PhotoId == p.Id && ip.InspirationId == i.Id
)
)
}).