首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用Automapper映射列表

使用Automapper映射列表
EN

Stack Overflow用户
提问于 2011-04-08 09:27:40
回答 5查看 113.2K关注 0票数 77

我有这样的课程:

代码语言:javascript
复制
public class Person{ /* Props here */ }

public class PersonViewModel { /* Props here */ }

然后是列表:

代码语言:javascript
复制
List<Person> people = new List<Person>();
List<PersonViewModel> peopleVM = Mapper
                                .MapList<Person, PersonViewModel>(people); //Problem here.

执行此操作的正确方法是什么?

EN

回答 5

Stack Overflow用户

发布于 2015-04-22 13:06:29

另一种解决方案

代码语言:javascript
复制
List<Person> people = new List<Person>();
List<PersonViewModel> peopelVM;
peopelVM = people.Select(Mapper.Map<Person, PersonViewModel>);

在Automapper配置中

代码语言:javascript
复制
Mapper.CreateMap<Person, PersonViewModel>();
票数 26
EN

Stack Overflow用户

发布于 2012-09-25 00:34:01

如果您在这里使用IQueryable列表(例如,来自EF或NH ),则可以使用AutoMapper.IQueryableExtensions方法Project()To()

这是我第一次使用AutoMapper,但我成功地为模型创建了一个映射:

代码语言:javascript
复制
Mapper.CreateMap<Person, PersonViewModel>();
Mapper.AssertConfigurationIsValid();

然后使用IQueryableExtension方法Project()To()

代码语言:javascript
复制
using AutoMapper.QueryableExtensions;
...

IQueryable<Person> people = new List<Person>().AsQueryable(); //actually from ORM
IQueryable<PersonViewModel> peopleVM = people.Project().To<PersonViewModel>();
票数 15
EN

Stack Overflow用户

发布于 2018-04-16 22:28:42

在核心1.1中,此扩展可能会起作用:

代码语言:javascript
复制
public static List<TDestination> MapList<TSource, TDestination>(this IMapper mapper, List<TSource> source)
        {
            return source.Select(x => mapper.Map<TDestination>(x)).ToList();
        }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5589471

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档