我正在使用以下函数将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