2012-06-20 2 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.

Мой ViewModel имеет свойства FirstName, LastName, MRN, DOB и PatientId. За исключением PatientId, который имеет имя Id в Visit.Patient, имена свойств соответствуют объектам домена и viewmodel.

Как получить AutoMapper для заполнения моих свойств viewmodel со значениями, найденными в Visit.Patient? Благодаря!

РЕШЕНИЕ - Добавлен здесь, потому что я не могу ответить на мой собственный вопрос ...

Это называется уплощение и я нашел видео 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)); 

* нашел ответ на свой вопрос сразу после размещения здесь, но ТАК сказал, что я не смог ответить на мой собственный вопрос. Теперь я не могу принять свой собственный ответ в течение нескольких часов.

Смежные вопросы