1

次のlinqを使用して、返されたデータセットを解析しています:

 row.Field<long?>("id").HasValue == false &&

私が直面している問題は、データセットを SQL Server から取得するときにフィールドを解析する必要があり<int?>、Oracle から取得するときに として解析する必要があること<long?>です。このデータ型を動的に設定するために .Field メソッドに渡すことができる変数を作成する方法はありますか? 私はこのようなものが欲しいです:

Type T = IsSqlServer ? typeof(int?) : typeof(long?);
....
row.Field<T>("id").HasValue == false &&

前もって感謝します!

4

3 に答える 3

3

リフレクション (推奨されません) を使用するか、単に三項演算子を使用することができます。

!(IsSqlServer ? row.Field<int?>("id").HasValue : row.Field<long?>("id").HasValue)
于 2013-08-06T13:58:09.523 に答える
1

dynamicこの目的のためだけにキーワードを使用できます。プログラミングガイドはこちらをご覧ください。

これが役立つことを願っています。

于 2013-08-06T17:46:57.160 に答える