Как преобразовать типизированный DataTable в список объектов? - PullRequest
2 голосов
/ 02 мая 2011

Мне нужно преобразовать данные Типизированной таблицы данных в Список моей сущности. Я сопоставил все поля сущности с полем DataTable.

Есть идеи?

Ответы [ 4 ]

4 голосов
/ 02 мая 2011

Я бы посмотрел AutoMapper , который является отличным инструментом, который фокусируется на подобных сценариях.

Также здесь - это парень, который сделал именно ваш сценарий.

Надеюсь, это было полезно!

2 голосов
/ 02 мая 2011

Одним из способов может быть выполнение этого с помощью пользовательского кода. Предположим, вы называете имя класса Entity 'MyEnt'

 public class MyEnt
    {
     public string Name {get; set;}
     public string Type {get; set;}
     public LoadMyEnt(object [] array)
      {
         this.Name = array[0].ToString();
         this.Type = array[1].ToString();   
      }
    }

// для данных, вы можете сделать

List<MyEnt> list = new List<MyEnt>();
foreach(DataRow dr in table.Rows)
{
  MyEnt obj = new MyEnt();
obj.Load(dr.ItemArray);
list.Add(obj);
}
1 голос
/ 02 мая 2011

Вы можете сначала преобразовать его в общий набор данных, а затем преобразовать его в список.
Существует множество фрагментов кода, доступных для преобразования общих данных в список. Некоторые из них:
Как преобразовать DataTable в общий список?
Преобразовать таблицу данных в список
Самый быстрый способ преобразования данных в общий список

0 голосов
/ 02 мая 2011

Вы можете написать метод расширения:

public static List<TItem> Cast<TItem>(this DataRowCollection drc, Func<DataRow, TItem> converter)
    {
        List<TItem> list= new List<TItem>();
        foreach (DataRow row in drc)
        {
            list.Add(converter(row));
        }
        return list;
    }

Где конвертер, например, лямбда-выражение, содержащее следующее:

item => new YourClass(item)

Спасибо

Dennis

...