【发布时间】:2020-05-12 20:22:10
【问题描述】:
下面是我的源对象
public class Source
{
public string Name { get; set; }
public DateTime GeneratedFrom { get; set; }
public DateTime GeneratedTo { get; set; }
}
然后是目标对象
public class Destination
{
public DateTime Day{ get; set; }
public string Name { get; set; }
}
目标中的日期从Source.GenerateFrom 和Source.GenerateTo 获取其值(迭代直到Source.Generatefrom <= Source.GenerateTo使用while 循环)。最后,我需要一个如下的对象列表。
{"Day":"2019-02-04","name":"abc"},
{"Day":"2019-02-05","name":"abc"},
{"Day":"2019-02-06","name":"abc"}
这可以使用 automapper 实现吗?
下面是带有 whileloop 的映射器配置文件类。不确定这是否是正确的方法
CreateMap<Source, Destination>()
.forMember(
dest => dest.Day,
opt => opt.MapFrom(src => src.GenerateFrom))
.AfterMap((src, dest) =>
{
var StartDate = src.GenerateFrom;
var EndDate = src.GenerateTo;
List<Destination> list = new List<Destination>();
while(Startdate <= EndDate)
{
var data = new Destination {Day = StartDate, name = src.Name};
list.Add(data);
StartDate.AddDays(1);
}
});
【问题讨论】:
-
向我们展示你的 while 循环
-
@RomanMarusyk 使用映射器配置文件更新了帖子
标签: c# automapper