试图从另一个表中获得多个项目,并使用LINQ进行多个输入

  • 本文关键字:LINQ 项目 另一个 c# linq
  • 更新时间 :
  • 英文 :


我有一个表,在一些不同的图片上保存一些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();

相关内容

  • 没有找到相关文章

最新更新