我正在使用以下函數將DataTable中的列(從數據層傳遞)映射到對象屬性。該函數存在於我正在填充的類中。該類有兩種方法:Load()和LoadAll(),LoadAll()返回一組已填充的對象。我希望能夠使用相同的代碼來填充當前對象或新對象。然而,我對結果不滿意,主要是因爲重複,這是一個維護的噩夢。如何重新分解這段代碼?
Private Function MapDataRowToProperties(ByVal dr As DataRow, ByVal target As Incident) As Incident
If target.Equals(Me) Then
Me.ID = Convert.ToInt32(dr.Item("pkIncidentID"))
Me.Description = dr.Item("IncidentDetail").ToString
Me.Created = Convert.ToDateTime(dr.Item("CreatedOn"))
...
Return Me
Else
Dim NewIncident As New Incident
NewIncident.ID = Convert.ToInt32(dr.Item("pkIncidentID"))
NewIncident.Description = dr.Item("IncidentDetail").ToString
NewIncident.Created = Convert.ToDateTime(dr.Item("CreatedOn"))
...
Return NewIncident
End If
End Function
注:我很清楚的ORM工具,會爲我這樣做,我通常使用EntitySpaces,但對於這個項目,我不能這樣做。
我可能是遙遠,但在這裏......在一個私人的功能,不應該針對幾乎永遠是我? – Svish 2009-02-03 13:11:15