3

如果我有这样的事情

 var result = db.Database.SqlQuery<object>("SELECT GroupID, GoupName, GroupValue FROM Group").ToList();

如您所见,我使用对象是因为我没有可以将其绑定到的特定类。

有什么方法可以从结果中获取列的信息和值。

我尝试使用反射,但它不起作用

 Type type = result.GetType();
 FieldInfo[] fields = type.GetFields();
 foreach (var field in fields) // Loop through fields
 {
     string name = field.Name;
 }

有什么办法吗谢谢

4

1 回答 1

2

看起来没有办法做到这一点 - 有一件事,你result不是单个对象,而是一个InternalSqlNonSetQuery包含对象集合的 。在您的情况下,由于您的通用参数是object,因此您会得到完全空System.Object的对象,没有参数。

我希望Dictionary<string, object>能奏效,但没有这样的运气。

如果您事先知道字段名称和类型,即使您没有在代码中定义类型,您也可以使用此处找到的技术在运行时定义类型,但这可能不是您想要的。(如果这个链接死掉了,基本上它所做的是使用反射发射构建一个全新的类型,并将其用作结果类型,但这并不是一笔微不足道的代码)。

于 2013-08-30T23:41:59.757 回答