まあ、私はこのDBモデル「ブック」マッピングの作業はどこで行う必要がありますか?リポジトリまたはサービス層?
public class Book {
public int Id { get; set; }
public string Title { get; set; }
public string Author { get; set; }
public bool IsSubmitted { get; set; }
public bool IsCompleted { get; set; }
public bool IsDeleted { get; set; }
}
を持っていると私GetBook(int id)
方法は、次のようになりますBook
戻り、私は、リポジトリのパターンを実装している:へ
public Book GetBook(int id) {
return db.Books.Find(id);
}
、私のBookViewModel
ニーズを他にもいくつか質問します。
public class BookViewModel
{
public int Id { get; set; }
public string Title { get; set; }
public string AuthorName { get; set; }
public int CommentsCount { get; set; }
public int FeedbacksCount { get; set; }
public int ViewsCount { get; set; }
}
現在、私のサービス層は、モデルをDBモデルにマッピングし、リポジトリに渡しています。 私の質問は、この追加(ビュー固有)のデータをどこに問い合わせるべきかということです。 CommentsCount, FeedbacksCount, ViewsCount
などの別個のリポジトリメソッドを記述し、ビューモデルを作成するために自分のサービスレイヤから呼び出す必要がありますか?戻り値タイプBookViewModel
を持つ新しいリポジトリメソッドを作成する必要がありますか?
ご協力いただきまして誠にありがとうございます。
、私はCommentsCount、FeedbacksCountなどのために何度も何度もデータベースを照会元の溶液で行くべき?大量のデータがある場合は非効率的ではありませんか?この問題の回避策はありませんか? – Aneeq
あなたのリポジトリには、GetComments、 のようなメソッドがあるはずです。CommentsCountサービスレイヤでGetCommentsメソッドを呼び出し、.Count()でカウントを取得できますか? あなたのためにviewModelを準備するリポジトリのメソッドを実際に作成すべきではありません。 – waterdev