Automapper如何映射这个?

时间:2011-03-26 19:02:48

标签: c# asp.net-mvc automapper

我试图这样做

public class TaskTableViewModel
{
    public string CourseCoursePermissionsBackgroundColor { get; set; }
}

 public class Course
{
    public virtual IList<CoursePermission> CoursePermissions { get; set; }

    public Course()
    {
        CoursePermissions = new List<CoursePermission>();
    }
}

    public class CoursePermission
{
    public virtual string BackgroundColor { get; set; }

}

所以我试图让BackgroundColor进入viewModel,但我无法弄清楚它是否在列表中。

List<Task> tasks = taskService.GetAllTasks("email@gmail.com");

    List<TaskTableViewModel> viewModel = new List<TaskTableViewModel>();
    List<TaskTableViewModel> taskViewModelList = new List<TaskTableViewModel>();

    viewModel = Mapper.Map<List<Task>, List<TaskTableViewModel>>(tasks);

这就是我想要做的。

  taskViewModelList[i].CourseCoursePermissionsBackgroundColor = tasks[i].Course.CoursePermissions.BackgroundColor 

以上会让我获得颜色。所以最后Task和taskTableViewModel在每个集合中应该具有相同的编号。

1 个答案:

答案 0 :(得分:0)

首先创建

Mapper.CreateMap<Task,TaskTableViewModel>()
             .ForMember(dest => dest.CourseCoursePermissionsBackgroundColor,
                         opt => opt.MapFrom(src=>src.Course.CoursePermissions[0].BackgroundColor));

然后尝试使用Mapper.Map