Важный совет здесь (выделен жирным шрифтом):
Нет свойства или поля 'Страна' в тип 'datarow'
Метод расширения AsEnumerable
класса DataTable
возвращает IEnumerable<T>
, где T имеет тип DataRow
.Теперь метод Select
Dynamic LINQ хочет работать с этим типом DataRow
, который, конечно, не имеет свойства Country
.
Вы можетепопробуйте это вместо:
var qry = MyDataTable.AsEnumerable().AsQueryable()
.Select("new(it[\"Country\"] as CountryAlias)");
it
теперь представляет переменную типа DataRow
, и вы можете использовать методы этого типа и, возможно, также индексатор в моем примере выше.(Dynamic LINQ поддерживает доступ к элементам массива по целочисленному индексу, но я не уверен, будет ли работать доступ к индексатору со строковым ключом.)