2015-11-30 4 views
-2

У меня есть класс, который выполняет некоторую проверку данных. Я хочу повторно использовать этот класс из другого места. Я не могу изменить этот класс. Это идет что-то вроде:LINQ - конвертировать LINQ select to DataTable

public static List<string> Validate(DataTable CurrentMasterTable, Dictionary<string, string[]> LocalMasterRuleSet) 
    {...} 

В своем собственном он работает просто отлично.

Проблема заключается в следующем. Из другого места в проекте, чтобы использовать этот класс, я должен отправить его объект DataTable, чтобы он мог делать свою магию.

Как использовать LINQ, сделать выбор в таблице и отправить ее как DataTable? у меня есть этот код, чтобы начать с:

var listOfSinglePropertyNames = (from x in dbContext.tbl_mytable.AsEnumerable()            select x); 

     IEnumerable<tbl_mytable> query = listOfSinglePropertyNames; 

Как преобразовать запрос в DataTable объекта? Чтение других сообщений, я видел, что должен использовать CopyToDataTable();

Но я не добился успеха.

+0

Я переработал вопрос, чтобы показать, что я сделал исследование, прежде чем отправлять :) –

+0

кажется дубликат [этот вопрос] (http://stackoverflow.com/questions/ 1526726/linq-to-sql-convert-iqueryable-to-dataset). Если вы пропустите 'AsEnumerable()', возможно, другие вопросы ответ могут работать? – Default

ответ

1

Использование LINQ to datatable. Адаптировать этот код для needings:

// Query the SalesOrderHeader table for orders placed 
// after August 8, 2001. 
IEnumerable<DataRow> query = 
from order in orders.AsEnumerable() 
where order.Field<DateTime>("OrderDate") > new DateTime(2001, 8, 1) 
select order; 

// Create a table from the query. 
DataTable boundTable = query.CopyToDataTable<DataRow>();