2014-09-10 4 views
0

asp.net 웹 API에는 두 가지 모델이 있습니다. 하나는 데이터베이스 모델이고, 다른 하나는 최종 사용자에 전달하는 모델이며, 우리는이 같은 속성을 매핑 :두 모델의 Null 객체 처리 web api

public static IndividualProc ToIndividualnternal(this AssignmentExternal item) { 
      return new IndividualProc() { 
       IndividualID = (int)item.person.id, 
       EventID = (int)item.event.id, 
       EventScehduleID = item.schedule.id, 
       EventGroupID = item.group.id 
      }; 
} 

문제는 사용자가 널 (null)을 통과 할 때, 나는 예외를 얻을 수 있다는 것입니다; "Nullable 개체에는 값이 있어야합니다." 이 예외가 발생하지 않도록 nullable 속성을 캐스팅 할 수 있습니까?

답변

1

nullable은 무엇인가요? 나는이 가정거야이 답변의 목적을 위해 널 (NULL)의 int이며 :

item.event.id 

이것은 INT 정규이다 :

이 경우
EventID 

, 명확하게 직접 캐스팅 할 수 없습니다 전자는 후자로 int의 경우 null 값을 처리 할 방법이 없기 때문입니다. Nullable<t> 구조는 그 값을 확인하는 데 도움 속성이 있습니다

EventID = item.event.id.HasValue ? item.event.id.Value : default(int) 

는, 그 값을 사용 않는 경우는, Null 허용의 INT는 값이 있는지 확인합니다. 그렇지 않은 경우 int (기본값 : 0)을 기본값으로 사용하십시오.

+0

좋아,이게 정말 도움이 되네, 내가 전에 혼란스러워했던 설명에 감사하지만 지금은 이해하고있다. – pgtips