0

我必须使用给定的类"QueryGenerator",该类由用户使用 StringConnection 和 Provider 从选定的表和列生成动态查询。无论如何,我不必知道该类的实现,但我必须使用它并且我有货。

最后,"QueryGenerator"将结果查询作为对象返回,我唯一知道的(因为我在类上使用 Reflector)是我可以对该查询结果进行 IQueryable 强制转换。这是一个例子:

var result = (IQueryable)myQueryGenerator.Result;

为了了解 的内容result,我必须使用反射。

那么,有没有更好的方法来找出 的内容result,例如,用它填充 DataSet 呢?

4

1 回答 1

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();
}
于 2013-03-27T04:50:55.860 回答