首页 / 教程列表 / LINQ教程 / LINQ操作符之Join概述

LINQ操作符之Join概述

1290 更新于: 2022-03-04 读完约需 4 分钟

概述

在这篇文章中,将给大家分享C#中Linq的Join操作符用法。

Join操作符将两个序列(集合)按照一定的条件连接起来并产生一个新的结果集。类似于SQL Server,MySQL等关系型数据库的JOIN关键字用法。

根据微软官方文档的描述:“两个数据源的连接是一个数据源中的对象与另一个数据源中共享公共属性的对象的关联”。

我们可以将上述定义简化为:“连接操作(Join)用于根据数据源中存在的一些公共属性从两个或多个数据源获取数据”。

为什么需要Join连接操作符?

比如当前有两个数据集合,分别存储用户信息的List<Customer>和用户配送信息的List<ShippingAddress>,示例数据如下:

其中,用户信息集合中只存储的配送数据的ID,即:AddressId

现有需求,要查询并同时获取到用户的Id,Name以及配送信息的Province,City,Distirct以及Street数据,期望的查询结果如下:

这时,如果是关系型数据库,我们可能的SQL语句如下:

SELECT C.Id,C.Name,A.Province,A.City,A.District,A.Street
FROM Customer AS C
LEFT JOIN ShippingAddress AS A ON A.Id=C.AddressId

而在C#语言中,则可以使用LINQ的Join操作符实现同样的查询。

正如你看到的,上面的结果集包含来自两个数据源的数据。需要理解的最重要的一点是,在执行连接(Join)时,需要公共属性。

在本例中,CustomerShippingAddress之间的共同属性是AddressId,它同时出现在两个数据源中。在同一行中,AddressIdCustomer数据源和ShippingAddress数据源之间的公共属性。像这样的场景,我们需要使用Linq Join来获取数据。如何编写查询来获取数据,我们将在下一篇文章中讨论。

LINQ中可以执行连接操作的方法有哪些

C#语言中,LINQ有两种方法可以执行连接操作,具体如下:

操作符 描述
Join Join操作符根据键将两个序列(集合)连接起来,并返回一个结果序列
GroupJoin GroupJoin操作符根据键连接两个序列并返回序列组。它就像SQL的左外连接。

C#中有哪些不同类型的LINQ Join?

我们可以在LINQ中执行不同类型的连接,比如:内连接、左连接、右连接、全连接和交叉连接,如下图示意:

在这篇文章中,先了解除C#语言中LINQ连接操作符(Join)的概述,希望你喜欢这篇文章。

在下一篇文章中,我们将通过一些不同类型的例子来讨论C#中LINQ的内连接。

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

本文永久链接码友网 » LINQ教程 » LINQ操作符之Join概述 分享:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册