.NET Core + EF Core를 사용한 데이터베이스 API 컨트롤러 구현 가이드

필요한 모든 코드를 한 번에 제공합니다. 복사하여 바로 사용할 수 있습니다!

  1. 필수 패키지 설치 (명령어 실행)

NuGet 패키지 관리자 콘솔에서 다음 명령어를 실행하세요:

bash

Install-Package Microsoft.EntityFrameworkCore
Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Swashbuckle.AspNetCore
  1. 엔터티 클래스 정의 (테이블 구조)

Member.cs 파일을 생성하고 다음 코드를 입력합니다:

csharp

// 멤버 정보 테이블 (DB의 Members 테이블과 매핑)
public class Member
{
    public int Id { get; set; }        // 자동 증가 주키
    public string Name { get; set; }   // 이름
    public int Age { get; set; }       // 나이
    public string Email { get; set; }  // 이메일 주소
}
  1. 데이터베이스 컨텍스트 생성 (DB 연결 설정)

AppDatabaseContext.cs 파일을 생성하고 다음과 같은 코드를 추가합니다:

csharp

using Microsoft.EntityFrameworkCore;

public class AppDatabaseContext : DbContext
{
    // DB 연결 설정
    public AppDatabaseContext(DbContextOptions<AppDatabaseContext> options) : base(options)
    {
    }

    // DB 테이블 매핑
    public DbSet<Member> Members => Set<Member>();
}
  1. 프로그램 초기화 설정 (핵심 설정)

Program.cs 파일을 아래와 같이 완전히 교체합니다:

csharp

using Microsoft.EntityFrameworkCore;

var builder = WebApplication.CreateBuilder(args);

// 1. 컨트롤러 지원 추가
builder.Services.AddControllers();

// 2. Swagger API 문서화 설정
builder.Services.AddSwaggerGen();

// 3. 데이터베이스 연결 설정
builder.Services.AddDbContext<AppDatabaseContext>(options =>
    options.UseSqlServer("Server=.;Database=MemberDB;Trusted_Connection=True;TrustServerCertificate=True"));

var app = builder.Build();

// Swagger 활성화
app.UseSwagger();
app.UseSwaggerUI();

app.MapControllers();

// 데이터베이스 자동 생성
try
{
    using var scope = app.Services.CreateScope();
    var db = scope.ServiceProvider.GetRequiredService<AppDatabaseContext>();
    db.Database.EnsureCreated();
}
catch { }

app.Run();
  1. API 컨트롤러 구현 (CRUD 기능 포함)

MemberController.cs 파일을 생성하고 다음 코드를 입력합니다:

csharp

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

[ApiController]
[Route("api/[controller]")] // 요청 주소: api/member
public class MemberController : ControllerBase
{
    // DB 컨텍스트 주입
    private readonly AppDatabaseContext _dbContext;

    public MemberController(AppDatabaseContext dbContext)
    {
        _dbContext = dbContext;
    }

    // ==================== 1. 전체 멤버 조회 ====================
    [HttpGet]
    public async Task<ActionResult<List<Member>>> RetrieveAll()
    {
        var members = await _dbContext.Members.ToListAsync();
        return Ok(members);
    }

    // ==================== 2. ID로 멤버 조회 ====================
    [HttpGet("{id}")]
    public async Task<ActionResult<Member>> Get(int id)
    {
        var member = await _dbContext.Members.FindAsync(id);

        if (member == null)
            return NotFound("해당 멤버가 존재하지 않습니다");

        return Ok(member);
    }

    // ==================== 3. 멤버 추가 ====================
    [HttpPost]
    public async Task<ActionResult> Create(Member member)
    {
        _dbContext.Members.Add(member);
        await _dbContext.SaveChangesAsync();
        return Ok("멤버 추가 성공");
    }

    // ==================== 4. 멤버 정보 수정 ====================
    [HttpPut("{id}")]
    public async Task<ActionResult> Modify(int id, Member member)
    {
        if (id != member.Id)
            return BadRequest("ID 값이 일치하지 않습니다");

        _dbContext.Entry(member).State = EntityState.Modified;
        await _dbContext.SaveChangesAsync();
        return Ok("정보 수정 완료");
    }

    // ==================== 5. 멤버 삭제 ====================
    [HttpDelete("{id}")]
    public async Task<ActionResult> Remove(int id)
    {
        var member = await _dbContext.Members.FindAsync(id);
        if (member == null)
            return NotFound("삭제할 멤버가 없습니다");

        _dbContext.Members.Remove(member);
        await _dbContext.SaveChangesAsync();
        return Ok("데이터 삭제 완료");
    }
}

구동 후 자동 생성되는 내용

  • MemberDB 데이터베이스 생성
  • Members 테이블 자동 생성
  • Swagger UI 기반 API 테스트 환경
  • 5개의 REST API (전체 조회, 단일 조회, 추가, 수정, 삭제)
  • 오류 없이 즉시 배포 가능

API 엔드포인트 목록

  • GET /api/member → 전체 조회
  • GET /api/member/1 → ID로 조회
  • POST /api/member → 신규 등록
  • PUT /api/member/1 → 정보 수정
  • DELETE /api/member/1 → 데이터 삭제

필요한 작업은 단계별로:

  1. 위의 4개 파일 복사
  2. 3개의 NuGet 패키지 설치
  3. F5 키로 애플리케이션 실행

즉시 실행 가능합니다!

태그: dotnet-core entity-framework-core rest-api SQL-Server swagger

9월 3일 11:53에 게시됨