gpt4 book ai didi

c# - 如何在 AutoMapper 中使用 foreach 循环

转载 作者:太空宇宙 更新时间:2023-11-03 12:03:17 24 4
gpt4 key购买 nike

我发现很难使用 AutoMapper 从我的数据源映射到目标。我有一个包含对象列表的源类。现在我想使用 foreach 将该列表映射到单个类以迭代抛出列表,以便使用 Automapper 填充该类。

public class Source
{
public List<StudentName> studentName {get; set;}
}
public class StudentName
{
public string Name { get; set;}
}

public class Destination
{
public string FirstName { get; set;}
}


public List<Destination> GetStud(Source source)
{
MapperConfigurationExpression cfg = new MapperConfigurationExpression();
cfg.ValidateInlineMaps = false;
cfg.CreateMap<Source, Destination>();
MapperConfiguration mapperConfig = new MapperConfiguration(cfg);
IMapper mapper = new Mapper(mapperConfig);


var viewModel= new List<Destination>();

// enter code here
foreach (var item in source.studentName)
{
var destination = new Destination();
destination.FirstName = item.Name;

destination = mapper.Map<Destination>(item);

viewModel.Add(destination);

var man = 0;
}

return viewModel;

}

我试过的这个方法给了我以下错误找到未映射的成员。查看下面的类型和成员。添加自定义映射表达式,忽略,添加自定义解析器,或修改源/目标类型对于没有匹配的构造函数,添加一个无参数构造函数,添加可选参数,或者映射所有构造函数参数

最佳答案

您必须分配要映射的属性。没有必要做 foreach,做映射到列表:

public List<Destination> GetStud(Source source)
{
MapperConfigurationExpression cfg = new MapperConfigurationExpression();
cfg.ValidateInlineMaps = false;
cfg.CreateMap<StudentName, Destination>()
.ForMember(a=> a.FirstName, opt => opt.MapFrom(itm=> itm.Name));

MapperConfiguration mapperConfig = new MapperConfiguration(cfg);
IMapper mapper = new Mapper(mapperConfig);

var viewModel = mapper.Map<List<Destination>>(source.studentName);

return viewModel;
}

关于c# - 如何在 AutoMapper 中使用 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56130449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com