實戰 .Net 資料訪問層 - 21

來源:互聯網
上載者:User
訪問|資料 (2) EntityConvert

這個東東是模仿System.Convert的產物,剛開始沒覺得咋樣,用起來還真有點捨不得呢(本文開頭的代碼1中曾經使用過這個Utility)!

不信,且看如下代碼(僅舉兩例J):



代碼16:我變,我變,我變變變!

public static class EntityConvert

{

public static IList ToList(DbDataReader rdr, Type entity)

{

ArrayList list = new ArrayList();

using (rdr)

{

while (rdr.Read())

{

object obj = ToObject(rdr, entity, false);

if (obj != null)

list.Add(obj);

}

}

return list;

}



public static object ToObject(DbDataReader rdr,

Type entity, bool bNeedRead)

{

object obj = null;

if (!bNeedRead || rdr.Read())

{

// 建立Data Entity對象

obj = Activator.CreateInstance(entity);



// 設定Data Entity對象之欄位資料

FieldInfo[] fields = entity.GetFields(

BindingFlags.Instance | BindingFlags.Public);



foreach (FieldInfo field in fields)

{

string fieldName = field.Name;

object fieldValue = rdr[fieldName];



if (fieldValue == System.DBNull.Value)

field.SetValue(obj, null);

else

field.SetValue(obj, fieldValue);

}



if (bNeedRead && !rdr.Read())

rdr.Close();

}

return obj;

}

}



















































































































































下一段:http://www.csdn.net/develop/Read_Article.asp?id=27566


相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。