【问题标题】:Linq query on multiple tables connected by link tables对通过链接表连接的多个表的 Linq 查询
【发布时间】:2012-12-20 09:23:56
【问题描述】:

我是 linq 的新手。 我有一张二手车表,可以在多个网站上发布。在此之上,每辆车都有多个图像。网站和图片通过链接表连接起来。

购物车

  • 汽车ID
  • 制作
  • 型号

链接表网站

  • 车牌号
  • 网站ID

网站表格

  • 网站ID
  • 网站名称

链接表图片

  • 汽车ID
  • 图像ID

图片标签

  • 图像ID
  • 位置路径
  • 替代文本

...

我知道如何执行表的连接,但基于链接表的选择不起作用

我现在拥有的

    Return From link In AixamReader.Link_Cars_Websites
        Join car In AixamReader.Cars_SecondHandCars 
                On link.SecondHandCarID Equals car.SecondHandCarID
        From imglink In AixamReader.Link_SecondHandCars_Images 
                Where imglink.SecondHandCarID = car.SecondHandCarID
        Join webimg In AixamReader.WebSite_Images 
                On imglink.ImageID Equals webimg.ImageID
                Where link.WebsiteID = pWebsiteID 
                And car.OnWebsite = True
       Select car, webimg

如何为特定网站选择每辆车,然后为每辆车选择第一张图片。

感谢帮助

【问题讨论】:

  • 你的数据库是关系数据吗?我的意思是表之间是否存在主键/外键?
  • 是的,数据库与主键和外键工作相关。我可以在单独的查询中通过汽车 ID 选择第一张图片但我不知道如何结合汽车选择应用。我想在一个网格视图的数据源中获取它,否则我需要在 row.databound 事件的单独查询中获取图像......在我看来这不是一种好的工作方式......

标签: asp.net vb.net linq subquery


【解决方案1】:

这应该会有所帮助

From webSiteCarLink In AixamReader.Link_Cars_Websites

Join car in AixamReader.SecondHandCars
On webSiteCarLink.CarID Equals car.CarID

Join carImageLink In AixamReader.Link_SecondHandCars_Images
On webSiteCarLink.CarID Equals carImageLink.CarID

Join image In AixamReader.WebSite_Images
On carImageLink.ImageID Equals image.ImageID

Where webSiteCarLink.WebsiteID = pWebsiteID 
And car.OnWebsite = True

Group image By Key = car Into imageGroup

Select imageGroup.Key, imageGroup.FirstOrDefault();

【讨论】:

  • 我试图完成这项工作,但我收到错误“在这种情况下无法访问方法 imageGroup 的定义。我从未与 group 合作过,因此我将对此进行一些研究。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-23
  • 2019-11-10
相关资源
最近更新 更多