2012-06-20 55 views
3

代碼示例我的問題:如何讓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的數據。

我的視圖模型有FirstNameLastNameMRNDOBPatientId性能。除PatientIdVisit.Patient中名爲Id)之外,域對象和視圖模型中的屬性名稱匹配。

如何讓AutoMapper使用Visit.Patient中的值填充我的viewmodel屬性?謝謝!

的解決方案 - 在這裏增加了,因爲我不能回答我的問題...

這就是所謂的扁平化,我只是找到了一個視頻here

基本上,這是我想要的東西:

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

解決方法添加到問題的結尾... – user1469655

+0

您應該添加您的解決方案作爲答案。 – jrummell

+0

你也可以使用嵌套映射來保存內部集合 –

回答

0

這就是所謂的扁平化,我只是找到了一個視頻here

基本上,這是什麼Iwant:

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

*找到了答案,以我自己的問題在這裏發帖後不久,但是這麼說我不能回答我自己的問題。現在,我幾個小時都不能接受我自己的答案。