我有这样的课程:
public class Person{ /* Props here */ }
public class PersonViewModel { /* Props here */ }
然后是列表:
List<Person> people = new List<Person>();
List<PersonViewModel> peopleVM = Mapper
.MapList<Person, PersonViewModel>(people); //Problem here.
执行此操作的正确方法是什么?
发布于 2015-04-22 13:06:29
另一种解决方案
List<Person> people = new List<Person>();
List<PersonViewModel> peopelVM;
peopelVM = people.Select(Mapper.Map<Person, PersonViewModel>);
在Automapper配置中
Mapper.CreateMap<Person, PersonViewModel>();
发布于 2012-09-25 00:34:01
如果您在这里使用IQueryable
列表(例如,来自EF或NH ),则可以使用AutoMapper.IQueryableExtensions
方法Project()
和To()
。
这是我第一次使用AutoMapper,但我成功地为模型创建了一个映射:
Mapper.CreateMap<Person, PersonViewModel>();
Mapper.AssertConfigurationIsValid();
然后使用IQueryableExtension
方法Project()
和To()
using AutoMapper.QueryableExtensions;
...
IQueryable<Person> people = new List<Person>().AsQueryable(); //actually from ORM
IQueryable<PersonViewModel> peopleVM = people.Project().To<PersonViewModel>();
发布于 2018-04-16 22:28:42
在核心1.1中,此扩展可能会起作用:
public static List<TDestination> MapList<TSource, TDestination>(this IMapper mapper, List<TSource> source)
{
return source.Select(x => mapper.Map<TDestination>(x)).ToList();
}
https://stackoverflow.com/questions/5589471
复制相似问题