2011-03-23 5 views
0

를 사용하여 다른 테이블에서 다른 열을 잡아 당겨 : Descrip
이름
INT,나는 두 개의 테이블이 LINQ

법인
ID (PK)를

사용자
ID (PK)
에는 EntityID, INT (이것은 엔티티 테이블에 연결되지 않은)

이제 LINQ를 사용하여 Entity.ID = something이있는 레코드를 가져옵니다. GridView에 몇 가지 레코드가 표시됩니다.

protected void Page_Load(object sender, EventArgs e) 
{ 
    string getEntity = Request.QueryString["EntityID"]; 
    int getIntEntity = Int32.Parse(getEntity); 
    OISEntityTestingDataContext db = new OISEntityTestingDataContext(); 
    //OISLinqtoSQLDataContext db = new OISLinqtoSQLDataContext(); 
    var tr = 
     from r in db.Users 
     join s in db.Entities on r.UserID equals s.ID 
     where s.ID == getIntEntity 
     select new 
     { 
      //To Show Items in GridView! 
     }; 

    GridView1.DataSource = tr; 
    GridView1.DataBind(); 
} 

지금 여기에 내가 '가입'에 오류 중 mesg 무엇입니까 :

조인 절에 표현 중 하나의 유형이 잘못

여기 내 LINQ 문이다. 'Join'에 대한 호출에서 형식 유추가 실패했습니다.

그 의미는 무엇입니까? 누군가 나를 도와주세요. 고맙습니다!

+2

두 ID가 모두 같은 유형, int32가 아닌 int16인지 확인하십시오. – Mike

+2

당신이 있는지 있습니까'r.UserID'와'동일한 유형의 s.ID'입니까? –

+0

둘 다 SQL의 INT 유형입니다. –

답변

1

기본적으로받은 오류는 컴파일러가 다른 값과 다른 두 값을 비교하는 방법을 알지 못한다는 것을 알려줍니다. 당신은 당신이 intstring를 비교되지 않도록 있습니까? 다음과 같이 문자열을 해석 할 수 있습니다.

var tr = 
    from r in db.Users 
    join s in db.Entities on int.Parse(r.UserID) equals s.ID 
    where s.ID == getIntEntity 
    select new 
    { 
     //To Show Items in GridView! 
    }; 
0

조인 조건 중 하나의 조인 유형이 다른 조인 유형과 일치하지 않으려 고합니다.

조인 절에있는 식 중 하나의 형식이 잘못되었습니다.

엔티티 매핑이 일치하는지 확인하십시오.

게시물에 "ID"열이있는 것으로 테이블을 나열하지만 조인에서 ID는 ID이고 다른 ID는 사용자 ID입니다. 올바른 열에 합류 했습니까?

+0

나는 그것을 얻었다. 리처드의 대답은 똑같습니다. 고맙습니다 :) –

관련 문제