비즈니스 로직과 데이터를 처리하는 코드는 분산하는 것이 좋습니다. 엔티티프레임워크는 MVC 패턴을 제공하는데요. 사용법을 살펴보겠습니다.
프로젝트 구성하기
프로젝트 생성 및 기본구조 구성
서버 아키텍처 - 프로젝트 분산하기
서버 구조 인터페이스는 서버에 대한 요청과 응답처리하며 데이터베이스에 전송할 쿼리를 작성하고 데이터를 받는 역할을 수행하는 인프라스트럭처 프로젝트에 의존합니다. 인프라스트럭처
jin-co.tistory.com
패키지 설치
데이터베이스와 연결을 위한 설정을 해 줄 패키지가 필요한데요. 검색창에 누겟갤러리를 검색하여 엽니다.
NuGet: Open NuGet Gallery
▶ 설치할 패키지
패키지를 설치할 때 주의할 점은 패키지 버전이 반드시 .NET의 버전과 같아야 한다는 점입니다. 예를 들어 .NET 7의 경우 7.으로 시작하는 패키지를 다운로드하여야 합니다.
Microsoft.EntityFrameworkCore.Sqlite
시퀄라이트 데이터베이스 패키지로 시퀄라이트 사용을 가능하게 해 줍니다. 해당 패키지를 데이터를 다루는 인프라스트럭처 폴더에 설치합니다
Microsoft.EntityFrameworkCore.Design
코드 우선 데이터베이스 방식을 사용하기 위해서 필요한 패키지로, API 폴더에 설치합니다
마이그레이션에 필요한 패키지를 API 폴더에 설치합니다.
dotnet-ef
모델생성
코어 프로젝트에 개체를 담을 폴더를 생성하고
아래와 같이 개체 클래스를 추가합니다
콘텍스트 생성하기
인프라스트럭쳐 프로젝트에 콘텍스트를 담을 폴더를 생성하고
콘텍스트 클래스를 생성
콘텍스트 클래스에 디비콘텍스트를 부모 클래스로 추가한 뒤
아래처럼 사용할 개체를 속성으로 추가합니다
using Core.Entities;
using Microsoft.EntityFrameworkCore;
namespace Infrastructure.Data
{
public class StoreContext : DbContext
{
public StoreContext(DbContextOptions options) : base(options)
{
}
public DbSet<Item> Items { get; set; }
}
}
콘텍스트 서비스 등록
시퀄라이트 사용하기 - 코드 우선 방식
.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제
jin-co.tistory.com
마이그레이션
시퀄라이트 사용하기 - 코드 우선 방식
.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제
jin-co.tistory.com
데이터베이스 생성
시퀄라이트 사용하기 - 코드 우선 방식
.NET은 데이터베이스를 생성할 때 작성된 코드를 통해 데이터베이스를 생성하는 Code first (코드우선) 방식과 데이터베이스의 데이터를 바탕으로 코드를 작성하는 data first (데이터 우선) 방식을 제
jin-co.tistory.com
컨트롤러 생성하기
에이피아이 폴더에 새로운 컨트롤러로 사용할 새로운 클래스를 생성합니다
컨트롤러 클래스에 컨트롤러 베이스를 부모 클래스로 추가하고
아래 데코레이터로 컨트롤러 경로를 설정
[ApiController]
[Route("[controller]")]
다음으로 컨스트럭터를 생성하고 콘텍스트를 아래와 같이 인젝션 합니다
private readonly StoreContext _context;
public StoreController(StoreContext context)
{
this._context = context;
}
사용하기
데이터베이스에 접근은 컨트롤러 클래스에 주입한 콘텍스트를 통해서 합니다. 예를 들어 아이템 목록을 가져오는 코드는 아래와 같습니다
[HttpGet]
public ActionResult<List<Item>> GetItems()
{
return _context.Items.ToList();
}
이상으로 엠브이씨 패턴을 사용하는 방법을 보았습니다
참고
https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
Design Patterns - MVC Pattern
Design Patterns MVC Pattern - MVC Pattern stands for Model-View-Controller Pattern. This pattern is used to separate application's concerns.
www.tutorialspoint.com
'백엔드 > 닷넷' 카테고리의 다른 글
서버 아키텍처 - 레포지토리 (인터페이스 사용) (0) | 2023.04.07 |
---|---|
서버 아키텍처 - 레포지토리 (0) | 2023.03.29 |
.NET - 프로그램 파일 정리하기: 서비스 설정 익스텐션 만들기 (0) | 2023.03.08 |
데이터베이스 생성 시 제약조건 추가하기 (4) | 2023.02.19 |
데이터베이스 관계 추가하기 (참조, 종속) (0) | 2023.02.19 |