본문 바로가기

백엔드/닷넷

지네릭 레포지토리 스페시피케이션 패턴 - 필터링기능 추가하기

반응형

스페시피케이션 패턴의 단점 중 하나는 콘텍스트에서 기보제공하는 기능의 일부를 사용할 수 없다는 점입니다. 스페시피케이션 패턴에 필터링기능을 추가하는 방법을 보겠습니다.

지네릭 레포지토리 패턴 설정하기

 

관계형 데이터 불러오기 (참조 데이터 포함) - 지네릭 레포지토리 패턴

엔티티프레임워크를 사용하여 관계형 테이블에서 참조하는 데이터를 포함하여 데이터를 불러오는 방법을 보겠습니다. 구현하기 애플리케이션 생성 .NET web-API 생성하기 개발도구 설치하기 .NET

jin-co.tistory.com

코어 프로젝트에 아이템 리스트를 가져오는 메서드에 필터링에 사용될 매개변수 (보기에서 'targetId'와 'typeId')를 옵션을 추가하고 베이스 스페시피케이션의 Where구문을 활용하는 베이스를 추가합니다

: base(x => 
  (!targetId.HasValue || x.ItemTargetId == targetId) &&
  (!typeId.HasValue || x.ItemTypeId == typeId)
)

컨트롤러로 이동하여 필터링에 사용할 매개변수를 옵션으로 추가하고 코어 프로젝트에 아이템이 적용하는 클래스에 전달합니다

실행

작업이 완료되면 API 폴더로 이동하여

cd /API

아래 명령어로 앱을 실행합니다.

dotnet watch

이상으로 스페시피케이션 패턴에서 필터링기능을 추가하는 방법을 보았습니다.

 

728x90
반응형