如何将此 SQL 内部联接查询转换为 LINQ 语法?

Posted

技术标签:

【中文标题】如何将此 SQL 内部联接查询转换为 LINQ 语法?【英文标题】:How do I convert this SQL inner join query into LINQ syntax? 【发布时间】:2013-01-02 19:54:23 【问题描述】:

我对 LINQ 不是很熟悉。我需要将此查询转换为 LINQ 语句,以便在我的 C# 项目中使用。

谢谢

SELECT Galleries.GalleryTitle, Media.*
FROM Galleries 
INNER JOIN Media ON Galleries.GalleryID = Media.GalleryID
WHERE (Galleries.GalleryID = 100)

【问题讨论】:

【参考方案1】:
var query = from g in db.Galleries
            join m in db.Media on g.GalleryID equals m.GalleryID into gm
            where g.GalleryID == 100
            select new  g.GalleryTitle, Media = gm ;

属性Media 将包含已加入媒体实体的列表。此外,如果您在 Gallery 实体中定义了导航属性,则:

var gallery = db.Galleries.Include("Media")
                .FirstOrDefault(g => g.GalleryID == 100);

【讨论】:

以上是关于如何将此 SQL 内部联接查询转换为 LINQ 语法?的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有内连接的 sql 查询转换为 linq lambda 表达式?

如何将此 GROUP BY / MIN SQL 查询转换为 LINQ?

具有内部联接、多个分组依据和最小最大值的 Linq 查询

Linq中向实体左联接的Sql查询

将 Access SQL 内部联接查询转换为 mySQL 查询的问题

如何将此 Informix 嵌套联接转换为 tsql 嵌套联接?