我正在使用以下代碼將對象及其所有屬性保存到數據庫。它使我無需在每個業務對象中創建保存方法。在我的基類中的代碼是:可以使用反射來獲取基類中的屬性名稱和值嗎?
public void Save()
{
List<SqlParameter> Params = new List<SqlParameter>();
foreach (PropertyInfo Property in this.GetType().GetProperties())
{
if (Property.CanRead)
Params.Add(new SqlParameter(Property.Name,Property.GetValue(this,null)));
}
Execute<int>(SaveProcedure, Params.ToArray());
}
這是一個很好的做法還是我將關閉不使用反射和創建中的每個對象創建一個保存方法更好呢?
任何其他想法或建議表示讚賞,謝謝!
如果您的數據庫沒有與您的對象的屬性名稱匹配的字段,則可能會遇到一些問題。 – Frinavale 2009-09-10 18:55:59
謝謝大家的快速回復。我將研究LinqToSql並徹底擺脫它。 – Mike 2009-09-10 19:21:51