2013-02-12 139 views
0

由於某些原因,我在下面的代碼中出現語法錯誤。我試圖實現的是 用多條加入條款左連接。語法錯誤發生在關鍵字INTO foobar。 VS 2012表示意想不到的令牌。任何幫助將是偉大的,謝謝!Linq To Sql使用多個連接子句加入連接

Dim results = From f In foo _ 
        Join b In bar On new with {f.Type,f.ID} Equals New With {"Test",b.ID} into fooBar _ 
        from x in foobar.DefaultEmpty() _ 
        Where foo.id = 1 

回答

1

你想要一個Group Join

Dim results = From f In foo _ 
       Group Join b In bar On 
        New With {f.Type,f.ID} Equals New With {"Test",b.ID} _ 
        Into fooBar = Group _ 
       from x in foobar.DefaultEmpty() _ 
       Where foo.id = 1 
+0

@D士丹利,爲什麼會有一個組加入msdn說,它做一個左連接相同的事情。有什麼區別,爲什麼它對我有用? – gh9 2013-02-12 17:00:37

+1

@ gh9這是VB使用的語法 - 除了'LEFT JOIN'的_equivalent_之外,還有一些其他用途(例如能夠選擇右側的聚合),所以我猜他們選擇了更通用的語法。 – 2013-02-12 19:16:54

0

嘗試施放f.IDb.ID

Dim results = From f In foo _ 
        Join b In bar On new with {f.Type, CInt(f.ID)} Equals New With {"Test", CInt(b.ID)} into fooBar _ 
        from x in foobar.DefaultEmpty() _ 
        Where foo.id = 1 
+0

@權之前仍然得到意外的標記錯誤INTO關鍵字 – gh9 2013-02-12 16:09:41