在LINQ中如何找到加入2个表的不同项?

Dav*_*rab 2 .net linq

鉴于下表.如何在LINQ中获得76的其他ID,以获得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
Run Code Online (Sandbox Code Playgroud)

我想返回一份清单

Name1 Name2

执行此操作的SQL是

SELECT DISTINCT
    Q.HighLevelNAme
FROM S
JOIN Q ON Q.SID = S.SID
WHERE
        S.OtherID = 76
Run Code Online (Sandbox Code Playgroud)

我也有代表每个表的对象.

VB或C#中的答案是可以接受的.

Tro*_*ard 7

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

无论如何,我没有测试这个IRL,但它不会只是这个吗?

var results = (from QItem in dataContext.QItems
                where QItem.SItem.OtherID == 76
                select QItem.HighLevelName).Distinct();
Run Code Online (Sandbox Code Playgroud)