鉴于下表。在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();

09-18 22:51