我必须使用给定的类"QueryGenerator"
,该类由用户使用StringConnection和Provider从选定的表和列生成动态查询。无论如何,我不必知道班级的实施,但我必须使用它而且我有库存。
最后,"QueryGenerator"
将结果查询作为对象返回,我知道的唯一事情(因为我在类上使用Reflector)是我可以对该查询结果进行IQueryable强制转换。这是一个例子:
var result = (IQueryable)myQueryGenerator.Result;
要了解result
的内容,我必须使用反射。
那么,是否有更好的方法可以找到result
的内容,例如,用它填充DataSet?
答案 0 :(得分:1)
不,没有。
IQueryable可以返回不同类型的对象(例如,如果您查询对象数组)。在这种极端情况下,您需要在访问它们时确定枚举查询中每个项目的类型。
演示此场景的示例代码:
object[] objs = new object[3]{ "string", 78, DateTime.Now };
var q = objs.AsQueryable().Skip(1).Take(2);
foreach( var o in q )
{
var t = o.GetType();
}