我想要将2张地图投入相同的来源。但似乎有一个来源覆盖了第二个来源,即使我的目标是不同的领域。
public class FormViewModel
{
public List<SelectListItem> Items { get; set; }
public string SelectedItem { get; set; }
public string SomeField {get; set;}
// I have many more
}
List<Items> items = Service.GetItems();
FormViewModel viewModel = new FormViewModel()
{
Items = Mapper.Map<List<Items>, List<SelectListItem>>(courses);
};
var fields = Service.GetFields();
viewModel = Mapper.Map<Fields, FormViewModel>(fields);
所以现在当我做第二张地图时。它会消灭我的第一张地图。我怎么能阻止这个?
修改
我想我能明白为什么会这样。我认为它只是填写了那些字段,但现在我正在查看它并看到它返回一个新的FormViewModel。
我想我可以重新安排我的代码,以便我先做最后一张地图,然后再添加我的其他地图。
List<CalendarAppointmentReminderVM> vm = Mapper.Map<List<CalendarAppointment>, List<CalendarAppointmentReminderVM>>(taskReminders.Select(x => x.CalendarAppointment).ToList());
Mapper.Map<List<AppointmentReminder>, List<CalendarAppointmentReminderVM>>(taskReminders, vm);
另外他们工作。但是第一个结果一起被第一个结果消灭了。
答案 0 :(得分:0)
将第一个映射的输出传递给第二个映射,因此它不会创建新映射...
viewModel = Mapper.Map<Fields, FormViewModel>(fields, viewModel);