2014-09-10 12 views
0

我在我的asp.net web api中有兩個模型。一個是數據庫模型,另一個是最終用戶通過在模型中,我們的屬性映射是這樣的:在兩個模型中處理NullObjects 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 
      }; 
} 

的問題是,當用戶通過一個空,我得到一個異常; 「可爲空的對象必須有一個值」。我如何投射可空屬性以避免造成此異常?

回答

1

什麼是可以空的?對於這樣的回答,我要去承擔這個的目的是一個可空INT:

item.event.id 

,這是一個普通的INT:

EventID 

在這種情況下,顯然你不能直接投前者爲後者,因爲int無法處理值爲null的情況。該Nullable<t>結構具有屬性,以幫助檢查該值:

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

這會,並檢查是否可空INT有一個值,如果是的話,使用該值。如果沒有,請使用int(即0)的默認值。

+0

好的,這真的有幫助,謝謝你的解釋,因爲我之前很困惑,但現在我明白了。 – pgtips 2014-09-10 18:25:16