加入LINQ中的Where子句

时间:2016-03-30 17:59:21

标签: c# linq join null

我有两个表,我正在尝试使用ID连接,但只选择表A中的行,其中表B中的值为null。

我试过了:

var dbXMLSoccerTeams = (from dbXMLSoccerTeam in data.EFXMLSoccerTeam
     where dbXMLSoccerTeam.ID == (from dbMatchTeam in data.EFMatchingTeamIDs
         where dbMatchTeam.SmarketsID == null
         select dbMatchTeam.XMLSoccerID)
     select dbXMLSoccerTeam);

但是我得到一个错误,说运算符==不能用于比较int到iQueryable int

2 个答案:

答案 0 :(得分:4)

尝试:

var dbXMLSoccerTeams = (from dbXMLSoccerTeam in data.EFXMLSoccerTeam
                        from dbMatchTeam in data.EFMatchingTeamIDs
                        where dbMatchTeam.SmarketsID == null
                        && dbXMLSoccerTeam.ID == dbMatchTeam.XMLSoccerID
                        select dbXMLSoccerTeam)

答案 1 :(得分:4)

在我看来,你应该实际使用连接:

var dbXMLSoccerTeams = from dbXMLSoccerTeam in data.EFXMLSoccerTeam
                       join dbMatchTeam in data.EFMatchingTeamIDs
                         on dbXMLSoccerTeam.ID equals dbMatchTeam.XMLSoccerID
                       where dbMatchTeam.SmarketsID == null
                       select dbXMLSoccerTeam;