【发布时间】:2012-01-07 23:12:00
【问题描述】:
我正在使用 Asp net MVC 和 EF 开发一个站点。 我选择不将域对象带到视图层,因此我创建了 DTO 来执行此操作(以及 Automapper 将域映射到 dto 对象)
我有一个页面 Course/List 列出了所有课程。 所以我创建了一个 CourseDTO
public class CourseDTO{
public String Id { get; set; }
public String Title { get; set; }
public String Description { get; set; }
public List<ArgumentsDTO> Arguments {get;set;} //NOTE THIS
}
public class CourseListViewModel{
public List<CourseDTO> Courses { get; set; }
}
在 Course/Detail/123 页面中,我还想显示该课程的教师。
什么是最好的解决方案? 重用 CourseDTO 并使用单独的列表将教师列表带到视图中
public class CourseDetailViewModel{
public CourseDTO Course { get; set; }
public List<TeacherDTO> Teachers {get;set;} //NOTE THIS
}
或创建一个包含教师列表的 CourseDetailDTO?
public class CourseDetailDTO{
public String Id { get; set; }
public String Title { get; set; }
public String Description { get; set; }
public List<ArgumentsDTO> Arguments {get;set;}
public List<TeacherDTO> Teachers {get;set;} //NOTE THIS
}
在最后一种情况下,我将为同一个域对象有两个 DTO..
【问题讨论】:
标签: asp.net-mvc entity-framework architecture viewmodel dto