0

社内のvb.netORMは、ストアドプロシージャを使用して開発され、複雑な階層内の個々のオブジェクトにデータを入力します。各マッピングアクションのストアドプロシージャから、実行時に構築されて実行される動的SQLに移行しました。これにより、機能とパフォーマンスが向上します。各クラスには、db列のマッピング、テーブル、カーディナリティなどへのプロパティを示す独自のマッピングコードがあります。

私の問題は、オブジェクトモデルが複雑なため、ORM /マッパーコードによって構築されているオブジェクトが、必要以上のデータを呼び出す可能性があり、パフォーマンスが低下することです。

これはオブジェクトモデルまたはORM、あるいはその両方の問題ですか?

誰かがこの問題の管理に役立つデザインパターン/アイデアを提案できますか?

私が最初に考えたのは、取得するデータの深さを制御するために、マッピングクラスに追加の機能を追加する必要があるということでしたが、どうすればこれをきれいに実現できるのかわかりません。このテーマに関するアイデアや考えは大いに受け入れられます。

4

1 に答える 1

0

HibernateのようなORMは、「レイジーフェッチ」戦略を使用してこのシナリオを処理します。この戦略では、任意の深さへのオブジェクトの関連付けがそのまま維持されますが、階層内のオブジェクトは、初めてアクセスされるときにオンデマンドでフェッチされます。プロキシパターンを調べて、これをどのように行うことができるかを理解することをお勧めします。

于 2012-08-24T09:42:08.537 に答える