0

我正在使用 Northwind 客户表来填充数据集并获取数据表。

我正在尝试使用动态 linq 并希望动态选择 columnName

var qry = MyDataTable.AsEnumerable().AsQueryable().Select("new(Country)");

现在我有硬编码的国家,但即使那样我也会收到这个错误

No property or field 'Country' exists in type 'datarow'

我想最终更改此查询以动态获取列名。

请帮忙!!!谢谢。

4

1 回答 1

4

重要提示在这里(粗体):

“数据行”类型中不存在属性或字段“国家/地区”

AsEnumerable类的扩展方法DataTable返回一个IEnumerable<T>where T 的类型DataRow。现在Select动态 LINQ 的方法想要使用这种类型 DataRow,当然它没有属性 Country

你可以试试这个:

var qry = MyDataTable.AsEnumerable().AsQueryable()
    .Select("new(it[\"Country\"] as CountryAlias)");

it现在代表一个类型的变量,DataRow您可以使用这种类型的方法,也许还可以使用我上面示例中的索引器。(动态 LINQ 支持通过整数索引访问数组元素,但我不确定是否可以使用字符串键访问索引器。)

于 2011-04-13T16:30:05.120 回答