gpt4 book ai didi

c# - AutoMapper 从 child 那里获取属性

转载 作者:太空宇宙 更新时间:2023-11-03 10:40:55 28 4
gpt4 key购买 nike

我的模型类似于以下内容:

public class Source
{
public string Property1 { get; set; }
public string Property2 { get; set; }
}

public class SourceContainer
{
public Source Source { get; set; }
public string ExtraData { get; set; }
}

public class SourceViewModel
{
public string Property1 { get; set; }
public string Property2 { get; set; }
public string ExtraData { get; set; }
}

Mapper.CreateMap<Source, SourceViewModel>();

当我想从 Source 映射到 SourceViewModel 时,一切都很好,只是没有填充 ExtraData。但我也想从 SourceContainer 映射到 SourceViewModel,最好不要为每个属性指定映射。

是否可以告诉 AutoMapper 在进行映射时从子属性 Source 导入属性?像这样的东西:

Mapper.CreateMap<SourceContainer, SourceViewModel>()
.UseMappingForProperty(x => x.Source);

否则,我可以分别告诉 AutoMapper SourceViewModel 上的每个属性,并从子源中获取它,但我想知道是否有更优雅的方法。

最佳答案

我会使用 .ConstructUsing 来初始化生成的 SourceViewModel 以及映射内部 Source 属性的结果:

Mapper.CreateMap<SourceContainer, SourceViewModel>()
.ConstructUsing(container => Mapper.Map<SourceViewModel>(container.Source));

ExtraData 将在 SourceViewModel 构建后方便地映射。

关于c# - AutoMapper 从 child 那里获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25370546/

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