2012-11-25 4 views
1

두 데이터베이스에서 데이터가 필요합니다. 나는 다음과 같은형식 불일치로 인해 LINQ 조인이 실패합니다.

var User = (from U in _db.TblUsers 
         where U.IsAdmin == false 
         select U).ToList(); 

var AspNewsUser = (from A in _dbAspNet.aspnet_Users       
        select A).ToList(); 


var result = (from U in User 
       join A in AspNewsUser 
       on U.UserID equals A.UserId 
       select U); 

시도하지만 다음과 같은 오류 메시지가

조인 절에 표현 중 하나의 유형이 잘못을 얻을. 'Join'에 대한 호출에서 형식 유추가 실패했습니다.

+0

'사용자 ID'는 null 입력 가능합니까? – 2kay

+0

아니요 Nullable이 아닙니다. –

+0

두 컬렉션 모두에서 UserId에는 다른 유형이 있습니다. 먼저 확인하십시오. –

답변

1

Useriduniqueidentifier (엔티티 프레임 워크에 GUID에 매핑)입니다. TblUsers.UserID은 다른 유형 (예 : int)을 가지고 있습니다.

0

투영법을 사용하여 동일한 익명 유형으로 만듭니다. 당신이 table schema of aspnet_Users에서 볼 수 있듯이

var Users = (from U in _db.TblUsers 
        where U.IsAdmin == false 
        select new { UserID = U.UserID }).ToList(); 

    var AspNewsUsers = (from A in _dbAspNet.aspnet_Users       
        select new { UserID = A.UserID }).ToList(); 


    var result = (from i in Users join o in AspNewUsers on i.UserID equals o.UserID).ToList(); 
+2

Concat! = Join. – usr