有没有办法从返回数据表的数据库查询初始化对象?我的意思是,我有一个oracle存储过程,它返回表中数据的refcursor。在我的代码中,我有一个该表的对象(不使用ORM)。有没有一种简单的方法从数据表中的数据初始化对象,或者我是否必须手动初始化对象并设置所有属性?
答案 0 :(得分:0)
您可以在扩展方法中使用反射:
public static T CreateFrom<T>(this DataTable dt) where T : new()
{
T obj = new T();
obj.InitFrom(dt);
return obj;
}
public static void InitFrom<T>(this T obj, DataTable dt)
{
object currentValue;
DataRow row = dt[0];
foreach(var prop in typeof(T).GetProperties())
{
currentValue = row[prop.Name];
prop.SetValue(obj, currentValue, null);
}
}