정확한 단어를 입력하는 방법을 알지 못해서 제 질문의 문맥을 용서하십시오. 나는이를 볼 때, 그것이 속한 모든 직원을 표시합니다 "X"다시 그들이 부서에 속하는 모든 종업원 날 가져 "LINQ - 다 대다 관계를 통해 필터링 된 목록 쿼리
을 :. 더 일을 복잡하게하지하려면
, 여기에 내 비즈니스 요구 사항입니다
내 환경은 다음과 같습니다. Entity Framework 1.0 및 WCF Data Services 1.0이 포함 된 Silverlight 3. 모든 종류의 목록을로드하고 바인딩 할 수 있지만 문제가 없습니다. 내 환경이 좋지 않다고 생각합니다. 문제는 그것이 기술보다 LINQ 질문이라고 생각하는 이유입니다.
제 질문은 : 세 개의 테이블 (예 : 엔티티 (컬렉션))이 연결된 시나리오의 경우
예를 들어, 내 EDM : Employee - EmployeeProject - Project에이 파일이 있습니다.
------------------------
Employee (entity1)
------------------------
(Scalar Properties)
-------------------
EmployeeID (PK)
FirstName
other Attributes ...
-------------------
(Navigation Properties)
-------------------
EmployeeProjects
------------------------
EmployeeProject (entity2)
------------------------
(Scalar Properties)
-------------------
EmployeeProjectID (PK)
AssignedDate
other Attributes ...
-------------------
(Navigation Properties)
-------------------
Employee
Project
------------------------
Project (entity3)
------------------------
(Scalar Properties)
-------------------
ProjectID (PK)
Name
other Attributes ...
-------------------
(Navigation Properties)
-------------------
EmployeeProjects
지금까지, 난 단지 할 수 있었다 : 여기
Employee (table1)
-------------
EmployeeID (PK)
FirstName
other Attributes ...
EmployeeProject (table2)
-------------
EmployeeProjectID (PK)
EmployeeID (FK)
ProjectID (FK)
AssignedDate
other Attributes ...
Project (table3)
-------------
ProjectID (PK)
Name
other Attributes ...
는 엔티티 프레임 워크에서 EDM 디자인이다 : 여기
는 데이터베이스에서 테이블 디자인의
var filteredList = Context.Employees
.Where(e => e.EmployeeProjects.Where(ep => ep.Project.Name == "ProjectX"))
참고 : John의 게시물 뒤에 쿼리 구문을 업데이트했습니다.
위에서 볼 수 있듯이 관련 엔터티 (EmployeeProjects) 만 쿼리 할 수 있습니다. 필자가 원한 것은 Employee 엔티티에서 Project로 필터링 할 수 있다는 것입니다.
어떤 조언을 주셔서 감사합니다.
감사 존. 쿼리를 입력하려고했는데 WCF Data Services가 URI의 Count를 지원하지 않는 것 같습니다. 내 초기 쿼리 구문이 잘못 알았을 수도 있습니다. 카운트를 무시하십시오. 단순히 목록을 필터링하려는 시도였습니다. 이 같은 그래서 지금 노력하고 뭔가 : var에 filteredList = Context.Employees 어디에요 (예 => e.EmployeeProjects.Where (EP => ep.Project.Name == "ProjectX")) 당신을 수행 내가 뭘하려고하는지 알아? – user118190