더북(TheBook)

8. Models 폴더에 8번에서 작성한 인터페이스를 상속 받아 멤버를 구현하는 CommunityCampJoinMemberRepository.cs 클래스를 다음과 같이 작성한다. SQL 구문은 따로 저장 프로시저를 만들지 않았으므로 리파지터리 클래스에서 인라인 SQL로 작성한다.

▼  /Models/CommunityCampJoinMemberRepository.cs

using Dapper;
using Microsoft.Extensions.Configuration;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;

namespace DotNetNote.Models
{
  public class CommunityCampJoinMemberRepository :
      ICommunityCampJoinMemberRepository
  {
      private readonly IConfiguration _config;
      private SqlConnection con;
      
      public CommunityCampJoinMemberRepository(IConfiguration config)
      {
          _config = config;
          con = new SqlConnection(_config.GetSection(“Data”)
              .GetSection(“DefaultConnection”).GetSection(“ConnectionString”).Value);
      }
      
      public List<CommunityCampJoinMember> GetAll()
      {
          return con.Query<CommunityCampJoinMember>(
              “Select * From CommunityCampJoinMembers Order By Id Asc”).ToList();
      }
      
      public void AddMember(CommunityCampJoinMember model)
      {
          con.Execute(“Insert Into CommunityCampJoinMembers “
              + ” (CommunityName, Name, Mobile, Email, Size, CreationDate) “
              + ” Values (@CommunityName, @Name, @Mobile, @Email, @Size, GetDate())”,
              model);
      }
      
      public void DeleteMember(CommunityCampJoinMember model)
      {
          con.Execute(“Delete CommunityCampJoinMembers Where “
              + ” CommunityName = @CommunityName And Name = @Name And “
              + “Mobile = @Mobile And Email = @Email”, model);
      }
  }
}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.