2010-01-04 5 views
1

Используя LINQ, я пытался использовать библиотеку System.Linq.Dynamic, чтобы динамически запрашивать данные. Проблема в том, что он не сильно типизирован, а метод расширения для select ожидает IEnumerable в качестве источника.Возможно ли построить динамические запросы LINQ для несовпадающих типов данных?

Есть ли способ обойти это? Пример кода:

var query = dataSet.Tables[0].AsEnumerable().Select("new(Regional)"); 

ответ

0

Я нашел решение здесь , Я знаю, что этот подход не может быть хорошо, когда речь идет о производительности, но это работает на то, что я хочу

HOW TO: Implement a DataSet GROUP BY Helper Class in Visual C# .NET

+0

Я ничего не вижу в вашем linq, ссылаясь на использование Dynamic Linq на свободно типизированном datatable. – jrandomuser

0

AsEnumerable возвращает EnumerableRowCollection<DataRow>, поэтому метод Select расширение должно работать на результат AsEnumerable ...

Например:

var query = dataSet.Tables[0].AsEnumerable().Select(row => row.Field<string>("Regional")); 
+0

Я знаю, что. Но для этого вам нужно указать тип данных и поле. Таким образом, я не могу построить запрос динамически, используя строку. –