我有一个表,在一些不同的图片上保存一些id。通过这些id,我想获得与另一个表匹配的图片id。但我似乎不能让这个工作。
这是我到目前为止得到的:
public List<Image> ImagesForSession()
{
var userID = User.Identity.GetUserId();
var newestSes = newSes.GetNewestSession(userID);
var imgsOnSes = mtm.GetImagesOnSession(newestSes).Select(i => i.ImgId);
var imgs = imgSes.GetImageOnId(imgsOnSes).Select(x => x);
return imgs.ToList();
}
我最终需要的是能够将所有图像返回到列表中,因此我可以将其用作中继器的数据源。
这是我找到会话
上的所有图像的方法public List<MtoMImg> GetImagesOnSession(int sesID)
{
var query = _db.MtoMImgs.Where(i => i.SessionId == sesID).Select(i => i);
return query.ToList();
}
最后,这里是获取id上的图像的方法:
public List<Image> GetImageOnId(int ID)
{
var query = _db.Images.Where(i => i.id == ID).Select(i => i);
return query.ToList();
}
下面是一个将它们组合在一起的语句。您需要更新on
子句以匹配表的关联方式。如果你在做EntityFramework,这就变得简单多了。因为你可以直接选择图片
public List<Image> GetImageOnId(int sessionID)
{
return (
from sessionImage in _db.MtoMImgs
join image in _db.Images on sessionImage.ImageId equals image.Id
where sessionImage.SessionId == sessionID
select image
).ToList();
}
选项2是你只获取图像。需要更多地了解您的数据模型是如何工作的,还需要使用EF。
return _db.Images.Where(x=>x.SessionId== sessionID).ToList();