Во-первых, я рекомендую протестировать различные возможности с помощью LINQPad, который бесплатный и потрясающий.
Я не могу вспомнить, что вы можете сделать с помощью настольного адаптера, но вы должны быть в состоянии использоватьDataSet для получения данных, которые вы хотите, например,
string spec = myDataSet.MyTable.Rows[0] // or FindBy... or however you are choosing a row
.Specification;
Таким образом, вы можете сделать
foreach(var row in myDataSet.MyTable.Rows) {
string spec = row.Specification;
...
}
Или
return (from row in myDataSet.Specification
select new ClassSpecification()
{
Specification = row.Specification,
SpecificationType = row.SpecificationType,
StatusChange = row.StatusChange,
Spec = row.Spec,
}).ToList<ClassSpecification>();
Или даже
return myDataSet.Specification.Cast<ClassSpecification>()
Не уверен, что последний будет работать, но вы можете видеть, что есть несколько способов получить то, что вы хотите.Кроме того, в моих тестах строка строго типизирована, поэтому вам не нужно создавать новый класс для размещения данных - вы должны просто иметь возможность использовать существующий класс «SpecificationRow».(На самом деле, я полагаю, что это анти-паттерн *1016*. ).