次のように DB にマッピングするItemモデルがあります。
public class Item
{
public int ItemId { get; set; }
public DateTime Created { get; set; }
public string Title { get; set; }
}
これらのアイテムのリストを表示するために、次のようにItemSummaryViewModelを作成しました。
public class ItemSummaryViewModel
{
public int ItemId { get; set; }
public string Title { get; set; }
public ItemSummaryViewModel(Item item)
{
this.ItemId = item.ItemId;
this.Title = item.JobTitle + " " + item.Created.ToString("ddd d MMM HH:mm");
}
}
また、次のようにList< Item >を取得してList< ItemSummaryViewModels > を返すクラスも作成しました 。
public class ItemSummaryViewModelList : List<ItemSummaryViewModel>
{
public ItemSummaryViewModelList(List<Item> items)
{
foreach (Item i in items)
{
ItemSummaryViewModel itemSummary = new ItemSummaryViewModel(i);
this.Add(itemSummary);
}
}
}
最後に、コントローラーを使用して、次のようにリストをビューに渡します。
public ActionResult Index()
{
//IEnumerable<ItemSummaryViewModel> itemsummaries = new IEnumerable<ItemSummaryViewModel>();
List<Item> ListOfItems = db.Items.ToList();
ItemSummaryViewModelList ListOfItemViewModels = new ItemSummaryViewModelList(ListOfItems);
return View(ListOfItemViewModels);
}
私の質問は:
これを行うためのより効率的な方法または「ベストプラクティス」の方法はありますか?
DB モデル ( Item ) のリストを表示可能なビュー モデル ( ItemSummaryViewModels ) のリストに変換するために、現在、リスト内の各アイテムを繰り返し処理し、個別に変換しています。これを行うより効率的な方法はありますか?
基本的に、DB にクエリを実行し、データを ViewModel に割り当ててリストとして表示します。私は少し「家を回っている」と感じずにはいられず、これを行うためのより効率的な方法または「ベストプラクティスの方法」があるかもしれません.
より良い方法はありますか?
ありがとう