在同一来源上使用2张地图?

时间:2011-02-05 23:34:49

标签: c# asp.net-mvc automapper

我想要将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);

另外他们工作。但是第一个结果一起被第一个结果消灭了。

1 个答案:

答案 0 :(得分:0)

将第一个映射的输出传递给第二个映射,因此它不会创建新映射...

viewModel = Mapper.Map<Fields, FormViewModel>(fields, viewModel);