3. 웹 프로젝트의 Models 폴더에 Notes 테이블과 일대일로 매핑되는 Note 모델 클래스를 생성한다. 모델과 뷰 모델 클래스 형태로 개발하면 웹 폼이 아닌 MVC에서도 그대로 사용할 수 있다. 따라서 게시판 프로젝트에서는 SqlDataReaderDataSet 같은 웹 폼 친화적인 클래스를 사용하지 않고, List<T> 형태의 제네릭 클래스를 사용한다.

    ▼  ~/DotNetNote/Models/Note.cs

    using System;
    using System.ComponentModel.DataAnnotations;
    
    namespace DotNetNote.Models
    {
      /// <summary>
      /// Note 클래스: Notes 테이블과 일대일 매핑되는 ViewModel 클래스
      /// </summary>
      public class Note
      {
            [Display(Name = “번호”)]
          public int Id { get; set; }
            [Display(Name = “작성자”)]
            [Required(ErrorMessage = “* 이름을 작성해 주세요.“)]
          public string Name { get; set; }
            [EmailAddress(ErrorMessage = “이메일을 정확인 입력하세요.”)]
          public string Email { get; set; }
            [Display(Name = “제목”)]
            [Required(ErrorMessage = “* 제목을 작성해 주세요.“)]
          public string Title { get; set; }
            [Display(Name = “작성일”)]
          public DateTime PostDate { get; set; }
          public string PostIp { get; set; }
            [Display(Name = “내용”)]
            [Required(ErrorMessage = “* 내용을 작성해 주세요.“)]
          public string Content { get; set; }
            [Display(Name = “비밀번호”)]
            [Required(ErrorMessage = “* 비밀번호를 작성해 주세요.“)]
          public string Password { get; set; }
            [Display(Name = “조회수”)]
          public int ReadCount { get; set; }
            [Display(Name = “인코딩”)]
          public string Encoding { get; set; } = “Text”;
          public string Homepage { get; set; }
          public DateTime ModifyDate { get; set; }
          public string ModifyIp { get; set; }
            [Display(Name = “파일”)]
          public string FileName { get; set; }
          public int FileSize { get; set; }
          public int DownCount { get; set; }
          public int Ref { get; set; }
          public int Step { get; set; }
          public int RefOrder { get; set; }
          public int AnswerNum { get; set; }
          public int ParentNum { get; set; }
          public int CommentCount { get; set; }
          public string Category { get; set; } = “Free”; // 자유게시판(Free) 기본
      }
    }
    

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