使用mapper(automapper)比linq map函数有什么好处

时间:2014-02-14 09:52:33

标签: c# asp.net-mvc entity-framework-5 automapper

您可能会发现这个问题很愚蠢。但它可以帮助那些在脑中提出这个问题的人。

使用一些通用映射器(AutoMapper)比linq查询映射函数有什么好处?

EG: 使用mapper vs linq mapping

使用Linq映射功能:

var peopleList = _dbContext.People.Select(x => new PersonModel()
                                   { Field1 = x.Field......});

使用通用映射器(EG:AutoMapper)

var peopleList = _dbContext.People.ToList();
var personList = Mapper.Map<IEnumerable<PersonModel>>(peopleList);

1 个答案:

答案 0 :(得分:2)

在这种情况下:

var peopleList = _dbContext.People.Select(x => new PersonModel()
                                   { Field1 = x.Field......});

您需要按字段指定映射字段。

在那种情况下:

var peopleList = _dbContext.People.ToList();
var personList = Mapper.Map<IEnumerable<PersonModel>>(peopleList);

自动映射具有相同名称的所有属性。在后一种情况下,您可以只指定映射规则一次(全局),然后在整个应用程序中使用它。