0

StackOverflow のドメイン モデルを実装する必要があるとしましょう。

ORM を行っている場合、「最後のコメント」やその他の「最後の」ものを取得するためのプロパティを定義 (およびマップ) するにはどうすればよいですか? これはドメインモデルに反映されるべきだと私には思えます。

「すべてのコメント」が必要な場合もありますが...

4

2 に答える 2

2

私は ORM ツールの影響を受けているかもしれませんが、これはドメイン プロパティではなくクエリと見なしています。ドメインには関連付けが含まれており、リポジトリには、説明しているようなクエリがカプセル化されています。

于 2008-11-20T19:16:16.663 に答える
2

特定のユーザーによる最後のコメントについて、リポジトリにクエリを実行します。何かのようなもの

IList<Comment> recentComments = repository.GetRecentComments(user,20);

モデルでこれを行うこともできますが、予想されるコメントの数によっては避けたいと思います。モデルは、それ自体を設定する方法を知っているべきではありません。それはリポジトリの仕事です。ただし、NHibernate のようなものを使用している場合はそこにあります。

public class User{

 public IList<Comment> Comments { get;set;}

 public IList<Comment> GetRecentComments()
 {
   // Logic
 }


}

その実装では、最後の 20 個のコメントを取得するために、常にすべてのコメントを読み込むことになります。50 個のコメントしかない場合は大したことではありませんが、5,000 個のコメントがある場合は、かなりのオーバーヘッドが発生します。

于 2008-11-20T19:24:52.340 に答える