LINQ를 통해 레코드 집합을 검색 한 후 Include 문의 체인을 사용하여 Where를 찾습니다. 이러한 레코드는 Solicitud de AccionN 테이블 (보기로 전달) 테이블에 저장됩니다. 여기에는 분석 테이블의 원인이 세 가지가 있습니다. 원인 분석, 계획 수락 & Evaluacion Efectividad.관련 데이터를 읽을 수 없습니다. LINQ
Where 문은 현재 로그인 한 사용자의 UserId (ResponsableId)를 묻습니다. UserId가 책임지고있는 모든 Solicitud de Accion 레코드를 요청하고 있습니다. 케이크 조각은 UserId가 테이블의 필드이기 때문에 내가하는 모든 일은 그것을 요구하는 것입니다. 무엇보다도, 다른 세 테이블 - 원인 분석, 계획 수락 & Evaluacion Efectividad - 동일한 필드 UserId (ResponsableId)가 있습니다.
나의 현재 LINQ의 식입니다 : 이제
var sacSolicitudAccion =
db.SacSolicitudAccion.Include(s => s.SacResponsables)
.Include(s => s.SacAnalisisCausal)
.Include(s => s.SacPlanesAccion)
.Include(s => s.SacEvalEfectividad)
.Where(s => s.SacResponsablesID == idUsuario);
진짜 문제. 나는 현재 로그인 한 사용자가 책임지고있는 모든 Solicitud de Accion과 사용자가 분석 원인, 계획 기획안 또는 평가판을 책임지고있는 모든 Solicitud de Accion을 보여줄 필요가 있습니다.
어떻게하면됩니까?
* 중요
- Solicitud 드 ACCION 많은 Analisis 인과 Analisis 인과 관계를 가지고 하나 Solicitud 드 ACCION 있음) 및 ResponsableId (사용자 아이디) 필드는 : Solicitud 드 ACCION 다른 세 개의 테이블이 관계를 갖는다 모든 테이블에서 동일하므로 모든 테이블에서 동일합니다.
쿼리 결과를 처리 할 때 포함 된 정보를 사용하지 않는다는 것을 어떻게 알 수 있습니까? 그는 쿼리의 결과로 그가하고있는 것을 보여주지 못했습니다. 또한 'Where'는 OP와 다르지 않습니다.EF가 관계를 처리하는 방법에 대한 전체적인 생각은 참조 된 컬렉션에는 기본 항목이 주어진 항목과 일치하는 항목 만 포함된다는 것입니다. – Servy
@Servy : 명시 적으로 "응용 프로그램 코드가이 코드를 사용하지 않고 위 코드가 SQL로 변환 된 경우"라고 말했습니다. 솔직히 이름을 지어 내게 던져 버렸고 기본 키를 추적하는 데 어려움을 겪었습니다. 어떤 방식 으로든 비 기본 관계가 있다고 가정했습니다. – Guvante
실제로보기에서 관련된 데이터를 표시해야하기 때문에 포함이 중요합니다. 이 솔루션은 내가 속성 (예 : SacPlanesAccion.)을 탐색 할 때 좋아 보이지만 SacResponsablesID를 표시하지 않으며 count, concat, aggregate 등과 같은 메소드 만 표시합니다. 성명을 선언 할 방법이 있다면 생각하고 있습니다. 그런 다음 더 많은 행/레코드를 "추가"하십시오. 그게 가능하니? 그것에 대한 방법이 있습니까? 내 모델이나 컨텍스트 클래스에서 뭔가 추가가 필요합니까? 그렇다면 내가 제안한 것과 같은 속성을 탐색 할 수 있습니까? 답변 해 주셔서 감사합니다. –