13
A
答えて
18
私はあなたがMust Everything Be Virtual With NHibernate?
を読むことをお勧めその質問への迅速な答えは: 我々は遅延ロード 魔法/ブードゥー教を行うために 仮想するメンバーを必要とするので。
もっと答えがよければ でも面白いです。 ORMの持つ重要な機能は、透過的です。Lazy 読み込み中です。オブジェクト をORMで取得した場合、 オブジェクト全体を自動的にオブジェクト のグラフ(デフォルトではありません)に自動的にプルしたくはありませんが、 でコードを破棄したくない場合特定のアソシエーション がまだロードされており、必要に応じて をロードします。これは、ORMの 責任です。理想的には、 がプロパティにアクセスし、 のデータがまだ取得されていない場合は、 にこれらのプロパティの最初のアクセス時に、ORMが必要なデータをロードするようにします。
6
Andrewは言ったように、プロパティはレイジーローディングをトリガするために仮想的です。実行時に、NHibernateは実際のプロパティオブジェクトを代理オブジェクトに置き換えます。一度アクセスされると、プロキシオブジェクトは実際のオブジェクトを取得する方法を知っています。プロパティを仮想としてマークすると、この置換が行われます。
関連する問題
- 1. Moq、抽象クラスと仮想プロパティ
- 2. Moqと仮想プロパティとメソッド
- 3. 仮想プロパティと遅延ロード
- 4. 仮想プロパティのユニットテスト
- 5. エンティティフレームワークの仮想プロパティ
- 6. 基底クラスの仮想および非仮想継承ミキシング
- 7. 純粋仮想と仮想の違い
- 8. 仮想基底クラスと初期化リスト
- 9. ViewModelには、仮想クラス
- 10. 仮想ベースと非仮想ベースが混在するC++ 11クラスの格子?
- 11. Entity Frameworkコードファースト - 仮想プロパティ列のネーミング
- 12. 理解コード最初の仮想プロパティ
- 13. もう一度多態性 - 仮想プロパティ
- 14. 仮想ファイルにプロパティを追加する
- 15. 仮想プロパティを無視します
- 16. 子クラスの仮想関数のオーバーロード
- 17. DBIxクラス行の仮想/非永続カラム
- 18. 基底クラスからの仮想継承
- 19. 継承クラスのC++仮想関数
- 20. 仮想モニタ/仮想ディスプレイデバイスの作成
- 21. ASP.NETと仮想ディレクトリ
- 22. 仮想メモリとsbrk
- 23. ポインタと仮想メモリ
- 24. 仮想メモリとリロケータブルコード
- 25. brctlと仮想インターフェイス
- 26. 仮想メソッドを含むクラスでCreateFileMapping
- 27. 仮想関数が派生クラス内で非仮想宣言された
- 28. 仮想ボイドfuncFoo()const = 0と仮想ボイドfuncFoo()= 0の違い。
- 29. 仮想アドレスと仮想アドレス空間の理解
- 30. 仮想MIDIとのVST