私はこのようなモデルを持っています
public class Exam
{
public int NewsId { get; set; }
public string Title { get; set; }
public string Description{ get; set; }
public string Program{ get; set; }
}
そしてこのようなビューモデル
public class ExamViewModel
{
public int NewsId { get; set; }
public string Title { get; set; }
}
そして私はこのようにAutomapperを設定します
AutoMapper.Mapper.CreateMap<Exam, ExamViewModel>();
ActionResultでは、次のようにAutomapperを使用しました。
public ActionResult Exam()
{
var examsDb = db.Exams;
IEnumerable<ExamViewModel> examViewModel = AutoMapper.Mapper.Map<IEnumerable<Exam>, IEnumerable<ExamViewModel>>(examsDb);
return View(examViewModel);
}
そしてビューで私はそれをループします
@model IEnumerable<AraParsESOL.ViewModels.ExamViewModel>
<ul>
@foreach (var e in Model)
{
<li>
@Html.ActionLink(e.Title, "Type", "Exam")
</li>
}
</ul>
私の問題は次のとおりです。モデルでわかるように、4つのプロパティがありますが、viewModelでは2つのプロパティしかありません。
モデル全体ではなく、viewModelでこれら2つのプロパティのみを取得するにはどうすればよいですか?
ここで何が起こるかというと、各ループの後にビューでデータベースから必要な列を取得しますが、これら2つのプロパティのみが必要であり、データベースには戻りません。
このdb.Exam.ToList();のようなデータベースを取得できます。ただし、データベース全体が元に戻ります。ここでベストプラクティスを使用したいですか?
私はanonymouseタイプとselectコマンドでデータベースからデータを取得できることを知っていますが、automapperの使用は何ですか?ここでの最良の解決策は何ですか?