根据GitHUb文档,要使用 AutoMapper.Attributes ,需要执行以下三个步骤:
创建您要映射的课程。
将[MapsTo]属性添加到源类,目标类型作为参数。 (或者,您可以使用[MapsFrom]属性将目标类映射到源类型。)
我已完成第1步和第2步,但无法理解如何以及在何处使用第3步:
这是我的Model类:
[MapsFrom(typeof(ApplicationRole))]
public class RoleViewModel
{
public int Id { get; set; }
[Required(AllowEmptyStrings = false)]
[Display(Name = "Role Name")]
public string Name { get; set; }
public string Description { get; set; }
}
[MapsTo(typeof(RoleViewModel))]
public class ApplicationRole : IdentityRole<int, ApplicationUserRole>, IRole<int>
{
public string Description { get; set; }
}
这是我的控制器方法:
public ActionResult Index()
{
List<ApplicationRole> applicationRoles = RoleManager.Roles.ToList();
List<RoleViewModel> roleList = Mapper.Map<List<RoleViewModel>>(applicationRoles);
return View(roleList);
}
有人会告诉我如何以及在哪里调用 MapTypes() 扩展方法对我想要映射我的类型的程序集按照第3步中的建议 AutoMapper.Attributes 文档。
答案 0 :(得分:1)
我会在Controller中做(最终在构造函数中):
typeof(RoleViewModel).Assembly.MapTypes();
如果您安装Automapper的第4版,则可以解决此问题,因为在上一版本中,属性不起作用。因此,请在Package-Manager控制台中添加以下说明:
uninstall-package Automapper
install-package Automapper -version 4.2.1