"Repository"という文字列のパターンは、DomainとData Mapperレイヤの間のメディエータです。クール。したがって、たとえば、多分そうNHibernateとリポジトリパターンを使用してドメインオブジェクトのプロパティからページリストを返す方法
public interface Repository<DomainT> where DomainT : DomainObject{
DomainT Get(Object id);
}
のようなリポジトリのインターフェースと基本ドメインオブジェクトは、その後、具体的な実装が
public class ThreadRepository : Repository<Thread>{
public Order Get(Object id){
return _session.Find(typeof(Thread),id);
}
}
だろうがある今、私の質問は、スレッドは次のように、多くの記事を持つことができ、これですStackOverflowは、このスレッドが300の記事を持っていると言うことができます。上記のステートメントを使用して、私はスレッドオブジェクトを取得し、20項目のリストを表示したいだけなので、ThreadオブジェクトのPost Collectionプロパティにアクセスします。これは、LazyLoadingによってすべての300がフェッチされるため、私はどうしてください。
リポジトリ上のメソッドを持つことが、より効率的であるが
GetThreadPosts(object threadID, int pageSize, int index);
GetThreadPostCount(object threadID);
または第二レベルのキャッシュは300件の記事を取り戻すのように、この呼び出しは、比較的安価になるだろう
と呼ばれ、私のドメインモデルを保持します。投稿数が3000または30,000の場合、スレッドドメインモデルのポストコレクションプロパティは有効ですか?
GetThreadPosts & GetThreadPostCountを持つ方が良い場合は、ListのThreadオブジェクトのプロパティが冗長であることを意味しますか?
オブジェクトのListプロパティが実行可能な場合には、特定の数を超えない可能性のあるアイテムの数が限られている場合に限ります。お時間を
おかげで、
アンドリューは、遅延ローディングが動作する
ありがとうございます。それは非常に論理的に聞こえる!! :-) –