2010-09-22 18 views
9

, aşağıdaki LINQ katılmak başlık hata var aynı:katılmak fıkrada ifadelerin birinin tipi yanlıştır Bu kafamı karıştırmıştır

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(); 

Ancak, MemberId ve LocationId için tür aynıdır, bu yüzden yanlış yaptığımdan emin değilim.

Herhangi bir işaretçi minnetle alındı.

cevap

18

ÜyeID ve LocationID türleri aynı olabilir, ancak aynı adı da olmalıdır. Örnekte

, bunlardan biri ID (büyük D) sahiptir ve diğer Id (küçük harf d) sahiptir. Bu, anonim tiplerin ayrı türlerini yapmak için yeterlidir.

Örneğin, açıkça isimleri belirtilerek bu düzeltebilirsiniz:

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

Ah hakkı - boo !!! Güzel güncelleme ve hile yapar - Şerefe Timwi, en çok takdir edilen ve iyi bir açıklama. –

İlgili konular