LINQ to SQL选择等于或不等于

时间:2012-05-19 14:56:08

标签: vb.net linq linq-to-sql

在下面的LINQ查询中,我想当Loc = Locale.Gr返回GrID = 100的所有记录,而当Loc是其他所有其他记录时,GrID<> 100返回。

我怎样才能实现这一目标?我尝试了类似下面的内容,但这是完全错误的。

PrivateSub Test(Byval Loc as Locale)
    Private Const GrID as integer = 100
    Dim Query = From c In Mob Where c.CountryID = IIf(Loc = Locale.Gr, GrID, <> GrID) select c
End Sub

更新:

当然我可以使用像

这样的东西
If Loc = Locale.Gr Then
 Query = From c In Mob Where c.CountryID = GrID 
Else
 Query = From c In Mob Where Not c.CountryID = GrID 
End If

但它不是elegand

1 个答案:

答案 0 :(得分:1)

以合乎逻辑的方式思考 - 当您想要返回记录时,您有两个条件:

  

Loc = Locale.Gr AND GrID = 100

     

Loc&lt;&gt; Locale.Gr AND GrId&lt;&gt; 100

现在通过将这两个条件与OR组合来生成Where子句(因为只有其中一个是真的)并且您有查询。