0
這是我正在看的。假設我有一個具有多個屬性的類。我試圖寫一個看起來像這樣如何編寫使用屬性名稱填充屬性的方法?
public static void GetNullableInt32(this DbDataReader reader, Type property)
{
property = reader.IsDBNull(reader.GetOrdinal(property.name))
? (int?)null
: reader.GetInt32(reader.GetOrdinal(property.name));
}
凡屬性名稱都是從反射拉的方法,並且屬性是在方法中設置。我把Type中的參數作爲佔位符來放入它需要的任何類型。然後我會這樣稱呼它:
reader.GetNullableInt32(Class.Property1);
從數據庫讀取器設置類的所有屬性。
有沒有簡單的方法來做到這一點?或者是否有更好的結構,而不必將字段名稱作爲字符串輸入,而是從列名稱中提取?
編輯
在回答刪除評論問,爲什麼我們不只是傳遞的字符串名稱,使用的代碼看起來像
Class item = new Class {
ContactRelationId = reader.IsDBNull(reader.GetOrdinal("ContactRelationId"))
? (int?)null
: reader.GetInt32(reader.GetOrdinal("ContactRelationId"))}
而流傳下來的是要求我們不應該將包過程存儲爲字符串。