.net - 在 LINQ 中如何找到连接 2 个表的不同项目?

标签 .net linq

鉴于下表。在 LINQ 中,如何获得另一个 ID 为 76 的 Distinct 名称?

**Table S**
SID   OtherID
------------------------------
1     77
2     76


**Table Q**
QID   SID  HighLevelNAme      LoweLevelName
---------------------------------------
10     1       Name1              Engine
11     1       Name1              SparkPlus
12     1       Name2              Seat
13     1       Name2              Belt
14     1       Name1              Oil

我想返回一个列表

名字1 姓名2

执行此操作的 SQL 是

SELECT DISTINCT
    Q.HighLevelNAme
FROM S
JOIN Q ON Q.SID = S.SID
WHERE
        S.OtherID = 76

我还有代表每个表的对象。

可以接受 VB 或 C# 的回答。

最佳答案

如果您在数据库中定义了外键关系,并通过设计器生成了 LINQ 类,那么连接应该在对象模型中表示,对吧?那么每个 QItem 都有一个属性 SItem?如果没有,我想您可以对该部分使用 Join 扩展方法。

反正我没测试过这个IRL,不就是这个吗?

var results = (from QItem in dataContext.QItems
                where QItem.SItem.OtherID == 76
                select QItem.HighLevelName).Distinct();

关于.net - 在 LINQ 中如何找到连接 2 个表的不同项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/210178/

相关文章:

c# - 停止 ComboBox 中所选项目的颜色突出显示?

c# - 如何使用值从字典中删除条目

c# - 如何从人员列表中查询孙辈?

javascript - Underscore.js中groupBy、filter、count怎么一起做?

c# - .RemoveAll 和 .Where 在 C# 中的性能差异

entity-framework - Entity Framework -包括每​​个父级的前N个

.Net Core 和 NuGet

c# - 当我们按下 Enter 键时触发的 WPF TextBox 命令

c# - 如何使用抛出 InvalidOperationException 的计时器更改标签内容

vb.net - LINQ to Objects - 祖 parent 、 parent 、子女关系