我有一个存储过程,它返回透视列以及表中的列。执行存储过程后,我得到了 DataTable。现在我想将此 DataTable 转换为 List<'MyClass'>。DataTable 有一些已知的列(来自表)和一些未知数量的列作为数据透视的结果。
我如何创建一个真正代表一个 DataRow 的类。我的想法如下:
public class TableColumns
{
public int TableColumn1 { get;set; }
public string TableColumn2 { get;set; }
public float TableColumn1 { get;set; }
//additional columns if any
}
public class PivotColumns
{
public string ColumnName { get;set; }
public string Value { get;set; }
//additional columns if any
}
public class MyClass
{
public TableColumns tableColumns { get;set; }
public List<PivotColumns> pivotedColumns { get;set; }
//overload the [] operator with real implementation
public string this[string pivotedColumnName] { get;set; }
}
然后是一个辅助类来进行转换:
public static class ConversionHelper
{
public static MyClass ConvertDataRowToMyClass(DataRow dataRow)
{
// some implementation
}
public static DataRow ConvertMyClassToDataRow(MyClass myClass)
{
// some implementation
}
}
我上面提到的方法有多好?请分享想法/替代品
谢谢