AutoMapper对集合的映射和转换

在使用AutoMapper进行对象类型映射的时候,有时会面临将一个对象集合,全部转换到一个类型的集合。

比如有如下两个类型:

 public class Name
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
    } 

    public class NameDto
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string AllName { get; set; }
    }

现在我有一个List<Name>类型的 lsName集合,需要转换为List<NameDto>类型,我最开始想的办法是

     Mapper.CreateMap<Name,NameDto>();

     List<NameDto> lsNameDto = new List<NameDto>();
            foreach (var item in lsName)
            {
                lsNameDto.Add(Mapper.Map<Name, NameDto>(item));
            }

后来发现有点麻烦,进过研究发现可以直接这样搞:
            Mapper.CreateMap<Name, NameDto>();
            List<NameDto> lsNameDto = Mapper.Map<List<Name>, List<NameDto>>(lsName);

很给力吧。2012-02-10 12:38:39

posted @ 2012-02-10 12:40  rpoplar  阅读(1689)  评论(2编辑  收藏  举报