左(外)加入Linq - 矛盾与"进入"在我发现的例子中

时间:2016-05-31 14:03:43

标签: vb.net linq

我发现了example

作者提到了以下一行

join cat in en.Category on proc.catid equals cat.catid into catList

当我尝试使用"进入"关键字,颜色保持黑色而不是变成蓝色。对于Intelisense,甚至没有建议。

当我将鼠标光标拖到""时,它告诉我那里缺少")"

Dim result = (From foo In Entity.Foo
                  Join bar In Entity.Bar On foo.ID Equals bar.ID into foobarJoined 
                  From foobar In foobarJoined.DefaultIfEmpty()
                  Select New With {
                      ' [...]
                      })

在C#和VB下,Linq之间有区别吗?我正在使用最新版本。

2 个答案:

答案 0 :(得分:0)

尝试这种方式:

Dim result =   From foo In Entity.Foo
               Group Join bar In  Entity.Bar On
               foo.ID Equals bar.ID
               Into foobarJoined = Group
               Select New With {
                  ' [...]
               })

VB中的查询语法与C#略有不同。有关 群组加入 的详细信息,请查看此msdn页面。

答案 1 :(得分:0)

我更喜欢这种 JOIN 语法(见下文)。对我来说,它更容易阅读

Dim result = 
    From foo In Entity.Foo
    From bar in Entity.Bar.Where(Function(r) r.FooId = foo.Id).DefaultIfEmpty()
    Select New With 
        {
            ' . . . . . .
        })

这相当于左连接