NHibernateの遅延ロードについて聞いたことのほとんどは、それを使用しないよりも使用するほうが良いということです。ボトルネックを減らすために、データベースへのアクセスを最小限に抑えることが理にかなっているようです。しかし、トレードオフのないものはほとんどありません。確かに、あなたはvirtual
のプロパティを持つように強制してデザインをわずかに制限します。しかし、一部の開発者は、頻繁に使用される特定のオブジェクトで遅延ロードをオフにすることに気づきました。いつNHibernateの遅延ロード機能を使用しないでください?
これは、レイジーローディングを使用してデータアクセスのパフォーマンスが低下するという明確な状況があるのかどうか疑問です。
私はNHibernateで永続化されたオブジェクトの1つを遅延ロードするのを避ける必要があるのはいつですか?
レイジーローディングの欠点は、単に追加の処理時間であるか、レイジーローディングをnhibernateしてもデータアクセス時間が増加することです(データベースへの追加ラウンドトリップなど)。
ありがとうございます!
しかし、プロジェクトが非常に大きくなった後にlazyloadingを使い始めると、多くのことを変えるのが遅れます。私は最良のアプローチは、あなたが1つのクエリでデータベースからフェッチする必要があるデータを見つけることだと思います。この方法では後者はこれらのオブジェクトをキャッシュできますが、lazyloadingを持つオブジェクトはキャッシュできません。 – Meysam