假设我有一个通过LINQ获得的一堆属性的IQueryable,我如何循环这些属性?
我试过了:
foreach (PropertyInfo propertyInfo in rows.GetType().GetProperties())
{
var value = propertyInfo.GetValue(this, null);
var name = propertyInfo.Name;
}
这似乎没有用,但没有返回任何内容。我需要一种方法来检索IQueryable中所有属性的值的名称。
答案 0 :(得分:3)
如果rows
是查询结果,则您需要使用Type.GetGenericArguments:
var type = rows.GetType().GetGenericArguments().First();
foreach (PropertyInfo propertyInfo in type.GetProperties())
{
//...
这是因为结果将是IQueryable<T>
,而不是值本身。提取泛型类型可能会允许您明确获取属性。