본문 바로가기

백엔드/닷넷

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

반응형

엔티티프레임워크를 사용하여 관계형 테이블에서 참조하는 데이터를 포함하여 데이터를 불러오는 방법을 보겠습니다.

구현하기

애플리케이션 생성

 

.NET web-API 생성하기

개발도구 설치하기 .NET을 이용하여 웹애플리케이션을 만들기 위해서는 .NET에서 제공하는 개발도구가 필요합니다. 개발도구 다운로드는 아래 링크에서 가능합니다. .NET | Free. Cross-platform. Open Sour

jin-co.tistory.com

데이터베이스 관계추가하기

 

데이터베이스 관계 추가하기

엔티티프레임워크를 사용하여 테이블간에 관계를 추가 해 보겠습니다. 애플리케이션 생성 먼저 .NET 애플리케이션을 생성합니다. 생성하기 .NET web-API 생성하기 개발도구 설치하기 .NET을 이용하

jin-co.tistory.com

해당 보기에서는 아래처럼 엔티티 세 개를 생성하였습니다.

▶ 테스트용 데이터 파일

item.json
0.00MB
itemTarget.json
0.00MB
itemType.json
0.00MB

레포지토리 패턴 구성하기

 

서버 아키텍처 - 레포지토리 (인터페이스 사용)

인터페이스는 필요한 사항을 규정하는 일종의 계약서로 레포지토리 패턴에 인터페이스를 추가해 보겠습니다. 프로젝트 구성하기 프로젝트 생성 및 기본구조 구성 서버 아키텍처 - 프로젝트 분

jin-co.tistory.com

인터페이스에 메서드 추가하기

인터페이스에 아래와 같이 각 엔티티의 목록을 가져오는 메서드를 추가합니다

인터페이스 구현

레포티토리로 이동하여 추가된 메서드를 구현

컨트롤러에 메서드 추가

추가되는 엔드포인트의 경로는 아래처럼 괄호 안에 지정합니다

[HttpGet("targets")]

컨트롤러로 이동하여 설정한 메서드를 설치합니다

실행

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

cd /API

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

dotnet watch

스웨거를 사용하는 경우 아래처럼 바로 추가된 엔트포인트 확인이 가능합니다.

각 엔트포인트를 열고 실행하면 반환되는 정보확인이 가능합니다. 

주 엔티티에 포함된 보조 엔티티 값 불러오기

주 엔티티에서 참조하는 정보들이 널값으로 뜨는데 해당 데이터를 포함하려면 주 엔티티에서 데이터를 요청할 때 포함된 참조되는 엔티티도 추가해 주어야 합니다.

 

데이터를 요청하는 메서드가 구현된 레포지토리로 이동하여 엔티티 프레임워크 네임스페이스를 레포지토리 폴더에 추가하고

using Microsoft.EntityFrameworkCore;

참조하는 개체가 포함된 메서드에 인클루드 구문을 추가하면

public List<Item> GetItems()
{
  return _context.Items
  .Include(i => i.ItemTarget)
  .Include(i => i.ItemType)
  .ToList();
}

널값이 아니라 저장된 데이터가 반환됩니다.

이상으로 관계형 데이터베이스에서 참조한 데이터를 포함하여 가져오는 방법을 보았습니다.

 

728x90
반응형