2014-10-14 2 views
1

Linq 쿼리 가입 오류 표시Linq 쿼리 참가 오류 표시

Join in Linq query을 사용하는 동안이 오류가 발생합니다.

이것은 내가 가진 오류입니다.

암시 'System.Linq.IQueryable <xxx.Models.jobxml>' '하나 구해 명시 적 변환이 존재 (당신이 캐스트를 누락에 유형'System.Linq.IQueryable < AnonymousType # 1 >을 '변환 할 수 없습니다? 당신이 우리에게이 코드는 내가 job 변수가 추측하기 위하여려고하고, 앉아있는 상황을 표시되지 않는 것처럼)

이 내 코드

var job = from jx in bc.db.jobxml 
     join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
     orderby jx.id 
     select new 
     { 
     jx.jobtitle, 
     jx.jobrole, 
     jx.jobhour, 
     jx.companyname, 
     jx.jobposition, 
     jx.location, 
     jx.closedate, 
     jx.jobdescription 
     }; 
+0

이전에 삭제 한 질문에 따라이 문맥을 표시 할 수 있습니까? 이 코드 자체는 오류를 생성해서는 안됩니다. – DavidG

+0

'bc.db.jobxml'과'bc.db.Job_Agent_Details'의 컴파일 타임 타입을 포함하십시오. 만약 그 타입이'Foo'에 대해'IQueryable '가 아닌'IQueryable'이라면 문제가 발생할 것입니다 ... –

+2

또한 이전 질문에 다른 에러 메시지가있어서 타입이'IQueryable '이었음을 암시합니다. 'IQueryable ' – DavidG

답변

3

입니다 BEI (? 반환 변수로) NG는 select 익명 유형의 IQueryable을 만드는에서 IQueryable<jobxml>

을 기대 무언가에 의해 다른 곳에서 사용하지만,이 같은 jobxml로 변경할 수 있습니다으로

var job = from jx in bc.db.jobxml 
      join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
      orderby jx.id 
      select new jobxml //<-- This is the important change 
      { 
       //snip 
      }; 
+0

이제이 코드가있는 컨텍스트를 추가했습니다 – KesaVan

+0

추가 한 것은 오류 메시지이며이 linq 쿼리를 둘러싼 코드는 아닙니다. – DavidG

+0

두 테이블에서 내용을 가져올 수는 없지만 jx를주는 jobxml을 제공함으로써 작업이 완료되었습니다. Upvoted :) – KesaVan

3

을 (희망 DavidG의 대답을 자세히 설명합니다. 당신의 var job = ... 가능성에 앉아 함수는 다음과 같은 방법 서명이 :

public IQueryable<xxx.Models.jobxml> DoStuff() 
{ 

    // some code is here potentially 

    var job = from jx in bc.db.jobxml 
     join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
     orderby jx.id 
     select new 
     { 
     jx.jobtitle, 
     jx.jobrole, 
     jx.jobhour, 
     jx.companyname, 
     jx.jobposition, 
     jx.location, 
     jx.closedate, 
     jx.jobdescription 
     }; 

    return job; 

} 

문제는 여기에 함수가 DavidG 같이 IQueryable<xxx.Models.jobxml>

을 반환하려고 반면에 당신의 LINQ 쿼리는, 익명 타입 객체를 구축하다 linq 쿼리는 익명 형식이 아닌 jobxml 형식을 만들어야한다고 지적했습니다. 이는 다음과 같이 수행 할 수 있습니다.

public IQueryable<xxx.Models.jobxml> DoStuff() 
{ 

    // some code is here potentially 

    var job = from jx in bc.db.jobxml 
     join jad in bc.db.Job_Agent_Details on jx.agent_id equals jad.Id 
     orderby jx.id 
     select new xxx.Models.jobxml() 
     { 
     JobTitle = jx.jobtitle, 
     JobRole = jx.jobrole, 
     JobHour = jx.jobhour, 
     // the rest of your object properties - note i'm making assumptions about your jobxml object here 
     }; 

    return job; 

} 
+0

아마도 함수에 대해 다른 리턴 타입을 사용하려고했을 것이다. :) – DavidG

+0

사실. 목록 또는 ienumerable의 다른 유형은 내가 의미했던 것, 감사합니다 :) – Kritner

+0

오류 메시지는 물론'IQueryable'을 제안합니다 :) – DavidG