2

假设我有一个 IQueryable,其中包含通过 LINQ 获得的一堆属性,我如何遍历这些属性?

我努力了:

foreach (PropertyInfo propertyInfo in rows.GetType().GetProperties())
            {
                var value = propertyInfo.GetValue(this, null);
                var name = propertyInfo.Name;
            }

但这似乎不起作用,并且没有返回任何内容。我需要一种方法来检索 IQueryable 中所有属性的值的名称。

4

1 回答 1

3

如果rows是查询的结果,则需要使用Type.GetGenericArguments

var type = rows.GetType().GetGenericArguments().First();
foreach (PropertyInfo propertyInfo in type.GetProperties())
{
   //...

这是因为结果将是一个IQueryable<T>,而不是值本身。提取泛型类型可能允许您显式获取属性。

于 2013-11-01T21:27:42.257 回答