私はオブジェクトをDataTableに変換するユーティリティクラスを持っています。 DataTableからオブジェクトリストに変換する際に大量のデータを読み込む際に問題が発生しています。カスタム属性を使用して列情報を決定し、関連付ける。ここでは擬似コードです:数百行を持っていたDataTableの結果を得るためにDataTableをカスタムオブジェクトに変換する(逆も同様)
For each row in the table
For each property in an object
For each attribute on that property
If the attribute is our column information attribute
Grab the data from the table and insert the value into the objects property
End
End
End
End
が、しかし、このプロセスは分を取っているが...、それはウェブアプリで簡単に受け入れられないのです。
私の質問は、DataTableと.NET(カスタム)データオブジェクトを、多くのリフレクションを必要とせずに前後に変換する簡単な方法があるかどうかです。この場合)?
編集:データオブジェクト自体の中で別の問題だったことが分かりました。それでも、リフレクションコールでローダーを少し最適化しました。ありがとうございました。
実際のコードを投稿する必要があるかもしれません - あなたの問題は、その一部をキャッシュするのではなく、すべての単一の行に対してリフレクションコールを実行している可能性があります。いくつかのアイデアについては、この質問への回答を参照してください:http://stackoverflow.com/questions/1204748/cache-reflection-results-class-properties。 – patmortech
そして、ValueInjectorに関するこの記事を、データテーブルとオブジェクト間のマッパーとしてチェックしてください:http://stackoverflow.com/questions/5462671/valueinjecter-and-datatable – patmortech
私は合法的にコードを投稿できませんが、私はキャッシュしていませんでした。反射呼び出し。私は今それを試しています、うまくいけば、それは十分なページロード時間を得るために十分にスピードアップします。 – qJake