У меня есть хранимая процедура, которая возвращает столбцы с поворотными столбцами вместе с столбцами из таблиц. Я получаю DataTable после выполнения хранимой процедуры. Теперь я хочу преобразовать этот DataTable в список < 'MyClass'>. В DataTable есть несколько известных столбцов (из таблиц) и некоторое неизвестное количество столбцов в результате поворота.Создание бизнес-класса для DataRow с неизвестным числом столбцов
Как создать класс, который действительно представляет один 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
}
}
Насколько хорошо подход я упоминал выше? Пожалуйста, разделяющие идеи/чередуется
Благодарности
Идея наследования MyClass из TableColumns и PivotColumns хороша. Спасибо за реализацию преобразования. Но меня больше интересует настройка MyClass, чем преобразование между DataRow и MyClass. – hammadmirza