如何让AutoMapper填充我的viewmodel?

时间:2012-06-20 17:12:30

标签: asp.net-mvc automapper

我的问题的代码示例:

IList<TestDataAnimal> testDataFromDb = this.db.TestDataAnimals.Include(t => t.TestType).Include(t => t.Visit).Include(t => t.Visit.Patient).ToList();

Mapper.CreateMap<TestDataAnimal, TestDataAnimalViewModel>();

IList<TestDataAnimalViewModel> viewModelList = Mapper.Map<IList<TestDataAnimal>, IList<TestDataAnimalViewModel>>(testDataFromDb);

在上面的代码中,testDataFromDb返回我需要的所有数据。到目前为止,这么好......我知道我从数据库中获得了所有正确的数据。问题是viewModelList未填充Visit.Patient的数据。

我的viewmodel具有FirstNameLastNameMRNDOBPatientId的属性。除了在PatientId中名为Id的{​​{1}}之外,属性名称在域对象和视图模型中匹配。

如何让AutoMapper使用Visit.Patient中的值填充我的viewmodel属性?谢谢!

解决方案 - 在这里添加,因为我无法回答我自己的问题...

它被称为展平,我刚刚发现了一段视频here

基本上,这就是我想要的:

Visit.Patient

1 个答案:

答案 0 :(得分:0)

它被称为展平,我刚刚发现了一段视频here

基本上,这就是我想要的:

Mapper.CreateMap<TestDataAnimal, TestDataAnimalViewModel>()
.ForMember(d => d.FirstName, opt => opt.MapFrom(s => s.Visit.Patient.FirstName));

* 在发布后不久找到了我自己问题的答案,但SO说我无法回答我自己的问题。现在,我几个小时都无法接受我自己的答案。