리포지토리 패턴을 구현하는 방법을 잘 이해하고 있지만 복잡한 쿼리/메서드에 관한 결정 루프에 빠져 있습니다.저장소 패턴 : 복잡한 방법은 어디에 있습니까?
사용자 테이블에서 특정 필드 값을 가진 모든 사용자 또는 사용자를 얻고 싶다면 User 리포지토리에 들어가는 것이 분명합니다. 그러나 동영상 코스가 이러한 유형의 비디오 코스를 완료 한 모든 사용자와 같이 훨씬 더 복잡한 검색어가있는 경우 어떻게해야합니까? 내 모델에서이 쿼리는 약 6 개의 테이블을 교차합니다.
if (user.completedVideoRequirement)와 같은 작업을 수행 할 수있는 저장소가 필요하지만 사용자 저장소가이를위한 장소라는 자신을 확신하는 데 어려움을 겪고 있습니다. 그것은 나에게 맞는 것처럼 보이지만, 나는 그것을 아주 쉽게 논증 할 수있다.
올바른 방법은 무엇인가요?
EDIT : 데이터베이스 엔터티 이외의 정보를 반환 할 경우 (true/false 또는 다른 int를 반환하는 경우) 어떻게됩니까? 저장소 수준에서이 작업을 수행해야합니까? 아니면 if (users.CompleVideoRequirement.Any())와 같은 작업을 수행해야합니까? 사용자 저장소 정보가 사용자 저장소에 있기 때문에 사용자에게 정보가 있지만 기술적으로는 비디오 정보이기 때문에 여전히 유용하다고 생각합니다.
EF를 사용하고 있습니까? 그렇다면 시스템의 모든 테이블에 대한 컨텍스트가 있어야합니다. 그렇다면 해당 컨텍스트가있는 하나의 저장소에서 테이블에 액세스 할 수 있습니다. 그게 무슨 문제 야? – cassandrad