2010-09-22 23 views
9

這混淆了我,我對下面的LINQ的加入標題錯誤:類型聯接子句中的表現之一就是不正確時,類型相同

var r = (from k in location.tblKeyAccountInfoes 
        join l in location.tblLocations 
        on new { k.MemberID, k.LocationID } equals 
        new {l.MemberId, l.LocationId } 
        where k.MemberID == memberid && k.UserName == username 
        select l.LocationName); 

      return r.ToString(); 

然而,爲MemberId和LocationId類型是相同的,所以我不知道我做錯了什麼。

任何指針感激地收到。

回答

18

MemberID和LocationID的類型可能相同,但它們必須具有相同的名稱以及。

在您的例子,它們中的一個具有ID(資本d),而另一個具有標識(小寫d)。這足以使匿名類型分開類型。

您可以通過明確的名稱,例如解決這個問題:

join l in location.tblLocations 
on new { k.MemberID, k.LocationID } equals 
new { MemberID = l.MemberId, LocationID = l.LocationId } 
+0

阿右 - 噓!很好的更新和訣竅 - 歡呼Timwi,最讚賞和良好的解釋。 – 2010-09-22 12:22:19

相關問題