Как преобразовать набор данных в объект строго типа?

2

Я получаю некоторую информацию в наборе данных, и я хотел бы использовать его в объекте строгого типа. Например, у моего набора данных есть:

TableName: tab_data
Строки: 1
Столбцы: имя, имя, адрес

Итак, я создал класс вроде:

public class Customer
{
public String Name;
public String FirstName;
public String Address;
}

Есть ли какой-нибудь волшебный трюк, чтобы просто наложить мой набор данных на тип клиента? Использовать LiNQ?

Спасибо,

Теги:
ado.net
dataset

3 ответа

2
Лучший ответ

Вы не можете это сделать, но вы можете перевести данные...

Ответ, вероятно, отличается для 1 таблицы, чем для 20; на отдельных основаниях вы должны просто Select вывести данные (или, альтернативно, просто итерации) - это будет самый быстрый вариант, но это много если у вас много таблиц. В последнем случае возможно какое-то отражение возможно, так.

4

Есть ли причина, по которой вы не создали сильно типизированный DataSet для начала? Это, вероятно, было бы самым простым решением.

Вы можете преобразовать каждый DataTable в (скажем) a List<Customer> с помощью расширения AsEnumerable на DataTable и проекции, которая создает Customer из DataRow, если вам действительно нужно.

0

Вот пример того, как вы можете преобразовать набор данных в сильно типизированный объект. Есть некоторые ситуации, когда мы получаем данные в набор данных через какой-то другой источник, который не может быть строго типизирован. Но Dataset позволяет нам преобразовывать данные в строго типизированный объект.

 List<Customer> CustomerList =  
                      (from row in ds.Tables[0].AsEnumerable()
                       select new Customer
                       {
                        Name = row.Field<string>("Name"),
                        FirstName = row.Field<string>("FirstName"),
                        Address = row.Field<string>("Address")
                       }).ToList();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню