您可能会发现这个问题很愚蠢。但它可以帮助那些在脑中提出这个问题的人。
使用一些通用映射器(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);
答案 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);
自动映射具有相同名称的所有属性。在后一种情况下,您可以只指定映射规则一次(全局),然后在整个应用程序中使用它。