2016-12-27 1 views
0

내 시스템에서 해당 리포지토리 패턴의 열거 형 특성 인 C#이 int 특성을 데이터베이스에서 읽을 수 있습니까? 리포지토리 패턴의 열거 C#

나는 클래스했다 : 나는 상태 속성을 넣어 은행 클래스 그래서

public class Status : Enumeration 
{ 
    public static readonly Status Active = new Status(0, "Active"); 
    public static readonly Status Inactive = new Status(1, "Inactive"); 
    public static readonly Status Removed = new Status(2, "Removed"); 

    public Status() 
    { 
    } 

    private Status(int value, string displayName) 
     : base(value, displayName) 
    { 
    } 
} 

을;

내 은행 클래스가있는 은행과 상태 유형이 int 인 테이블에서 속성을 읽어 올 때 해당 속성은 null을 더합니다.

+0

안녕하세요. 오신 것을 환영합니다. StackOverflow. 도움말 페이지, 특히 [여기에 관해서 내가 무엇에 관해 물을 수있는 주제는 무엇입니까?] (http://stackoverflow.com/help/on-topic) 섹션과 [ "어떤 유형의 질문을해야합니까? 묻지 마시오? "] (http://stackoverflow.com/help/dont-ask). 더 중요한 것은 [Stack Overflow question checklist] (http://meta.stackexchange.com/q/156810/204922)를 읽어보십시오. [Minimal, Complete, Verifiable Examples] (http://stackoverflow.com/help/mcve)에 대해 배우고 싶을 수도 있습니다. –

+0

EntityFramework 또는 일반 ADO.net을 사용합니까? –

+0

DapperRepository가있는 ADO.net – Dariel

답변

0

나는 수업에서 "열거"에 예를

내가 DapperRepository 처리하지 않은
public class Status : Enumeration 
    { 
     //YOUR CODE 

     public static Status FromInteger(int value){ 
     switch(value){ 
      case 0: 
      return Active; 
      case 1: 
      return Inactive; 
      case 2: 
      return Removed; 
      default: 
      throw new ArgumentException(); 
     } 
     } 
    } 

에 대한 정수를 변환하는 정적 방법을 소개한다. 그러나 ClassMapper<T>을 간략하게 살펴보면 AutoMap 메서드를 사용하여 사용자 지정 변환을 활용할 수 있음을 알 수 있습니다. 그러나 나는 문서 나 예제를 찾지 못했습니다. 따라서 보편적 인 솔루션 만 제안 할 수 있습니다.

public class Bank { 

     //Standard fields that are mapped to a table in database 

     public Status StatusEnum { 
     get { 
      Status.FromInteger(StatusId); //StatusId is a property mapped to table's field 
     } 

     set { 
      //TODO Handle null value 
      StatusId = value.Value; 
     } 
     } 
    } 

참고 :

  • 내가 재산 StatusId이 상태 값을 포함하는 테이블의 필드에 매핑 필드 있다고 가정합니다.
  • 이 코드에는 명백한 문제가 있습니다. StatusId는 열거 형 범위를 벗어난 값을 허용합니다. 데이터 일관성을 유지하려면 몇 가지 추가 유효성 검사를 수행해야합니다.
+0

대단히 감사합니다. – Dariel

관련 문제