如何使用LINQ ASP.NET连接2个表

本文关键字:连接 2个表 NET ASP 何使用 LINQ | 更新日期: 2023-09-27 17:58:37

图像表结构:

Id
AccountId
Url

幻灯片表结构:

Id
AccountId
ImageId


我有两个请求:

ViewBag.userId = user.Id;
ViewBag.images = context.Images.Where(c => c.AccountId == user.Id).Select(c => c);
ViewBag.slides = context.Slides.Where(c => c.AccountId == user.Id).Select(c => c);

问题:如何更改代码ViewBag.slides =以获得结果slides.ImageId = images.Id。我正在尝试获取图片的url。

如何使用LINQ ASP.NET连接2个表

您可以执行LINQ加入

var slidesForUser= ( from a in context.Images
                       join b in  context.Slides on a.Id equals b.ImageId 
                      where a.AccountId == user.Id select b).ToList();

slidesForUser变量将是Slides的列表(用于那些匹配联接和where条件的记录程序)。如果您只想选择一个属性(例如:ImageUrl),只需将选择部分更新为select b.ImageUrl

我希望得到网址图片。

如果你只想要从幻灯片开始的图片的URL,你可以使用SelectMany

ViewBag.slides = context.Slides
    .Where(c => c.AccountId == user.Id)
    .SelectMany(c => c.Images)
    .Select(i => i.Url);