我有一个这样的模型
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 中只获得这两个属性而不是整个模型?
这里发生的情况是,在每个循环之后,它都会从数据库中获取所需的列,但我只想要这两个属性,而不是返回数据库。
我可以像这样获取数据库 db.Exam.ToList(); 但这会导致整个数据库恢复。我想在这里使用最佳实践?
我知道我可以通过匿名类型和选择命令从数据库中获取数据,但是 automapper 的用途是什么?这里最好的解决方案是什么?