繁体   English   中英

使用AutoMapper在带有清单的两个复杂对象之间进行映射

[英]Mapping between two complex objects with listings with AutoMapper

我有两个复杂的对象,每个对象中都有一个列表。 我正在使用AutoMapper将它们映射在一起,例如:

ConfigurationStore
    .CreateMap<IProcessDefinition, ProcessDefinition>()
    .ForMember(p => p.ProcessDefinitionDomainId, opt => opt.MapFrom(t => t.DomainId))
    .ForMember(p => p.Schemas, opt => opt.MapFrom(t => t.Schemas))
    .ForMember(p => p.ConfigurationValues, opt => opt.MapFrom(t => t.Configs))
    .ForMember(p => p.Libraries, opt => opt.MapFrom(t => t.Libraries));

在给定的示例中, t.Schemast.Schemas实现的列表, ISchemas是具有名称和值成员的类,二者均为string类型。 另一方面, p.Schemas只是一个字符串列表。 我已经尝试过使用解析器方法,在此介绍使用AutoMapper将对象的属性映射到string

它失败,因为解析器仅适用于根对象。 我也尝试过在两个模式之间注册一个自定义,这也不起作用。

t.Schemas = List<string>
p.Schemas = List<ISchema>

public interface ISchema
{
    string name;
    string class;
}

如果您对我有任何建议,请告诉我,非常感谢。

您可以使用ConvertUsing创建另一个将ISchema转换为string映射:

ConfigurationStore.CreateMap<ISchema, string>()
.ConvertUsing(s => s.name);;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM