내가 SO와 other sites에 various questions을 검토 한 결과,이 그러나 그냥 작동하지 않습니다, LINQ의 JOIN
을 수행 할 수있는 올바른 구문으로를 나타납니다LINQ JOIN에서 구문 오류가 있습니까?
var stages = (from stage in entityManager.TPM_TASKSTAGE select stage);
var results = (from task in pv.TPM_TASK
join st in stages on st.STAGEID equals task.STAGEID
where task.TASKTYPE == "Solution"
select new SolutionTask());
무시, 지금은 사실 실제로는 을 선택하지 말고을 선택하십시오. 그러나 TPM_TASK
의 각 행에 st.NAME
속성에 대한 액세스 권한을 갖고 싶습니다. 두 테이블은 STAGEID
에 의해 연결됩니다. LINQ 가입 표현에서
The name 'st' is not in scope on the left side of 'equals'. Consider swapping the expressions on either side of 'equals'.
, 모두 st
및 task
빨간색 squigglies이 : 나는 컴파일러 오류가 발생합니다. 내가 바보 같은 짓하고 있다고 말해줘.
오류 메시지의 정확한 지침을 따라 시도해 보셨습니까? (" 'equals'의 양쪽에서 표현식을 바꾸는 것을 고려하십시오.) –
@JonSkeet - 실제로 시도한 * 첫 번째 표현 이었지만 표현식은'task.STAGEID == st.STAGEID'였습니다. 이 비슷한 컴파일러 오류 (식을 바꿀 제안). 그래서 나는 변화를 가져올 수도있는 '평등'한 생각으로 전환했습니다. 나는'task.STAGEID equals st.STAGEID'와 같은 유효한 조합을 시도하지 않았습니다! 한숨. –
'task.STAGEID == st.STAGEID'가 있었을 때 같은 오류 메시지가 나타나지 않았을 것입니다. 왜냐하면 당신의 조인은 그 시점에서 완전히 완전하지 않기 때문입니다. –