0

"QueryGenerator"StringConnectionとプロバイダーを使用して、ユーザーが選択したテーブルと列から動的クエリを生成する特定のクラスを操作する必要があります。とにかく、私はクラスの実装を知る必要はありませんが、それを使用する必要があり、私は在庫があります。

最後に、"QueryGenerator"は結果クエリをオブジェクトとして返します。私が知っている唯一のことは(クラスでReflectorを使用しているため)、そのクエリ結果に対してIQueryableキャストを実行できることです。次に例を示します。

var result = (IQueryable)myQueryGenerator.Result;

そして、の内容を知るためにresult、私はReflectionを使わなければなりません。

それで、の内容を見つけて、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 に答える