0
class Person {
public string Name {get; set;}
public int Age {get; set;}
public string Phone {get; set;}
// many other properties
}
數據爲此人來自一個DataRow
,問題是,有不是一個一對一映射,如圖所示如下: -
public DataRow doMapping()
{
DataRow row = new DataRow();
FillDataInto(row);
Person p1 = new Person();
p1.Name = row["FirstName"] + " " + row["LastName"];
p1.Age = row["Age"];
p1.Phone = row["Phone"] + " " + row["Extension"];
p1.Prop1 = row["Prop1"];
p1.PropXY = row["PropXY"];
// many others ...
}
如圖所示的一些特性來從我的數據庫的不同列。我需要創造一個反射功能,以行屬性映射到Person
目前,我有以下一些幫助,但是對於一個一對一的映射工作,
(如上面的例子中,Age
): -
public DataRow doMapping(){
DataRow row = new DataRow();
FillDataInto(row);
Person p1 = new Person();
Type type = Person.GetType();
PropertyInfo[] props = type.getProperties();
foreach(PropertyInfo p in props)
{
string name = p.Name;
p.SetValue(p1, row[name]);
}
}
我只是需要改進這個來處理前面提到的情況。
(我可以稍後清理,一旦我理解了核心邏輯)