我正在尝试使用Automapper从A类映射到B类。但是,我想创建一个仅在目标上有可用前缀字段时映射的映射。我该怎么做?
例如,这不起作用:
class TestSource
{
public long id { get; set; }
}
class TestDest
{
public long TD_id { get; set; }
public long id { get; set; }
}
private void button1_Click(object sender, EventArgs e)
{
TestSource lclTS = new TestSource() { id = 20 };
TestDest lclTD = new TestDest() { id = 30 };
var lclConfig = new MapperConfiguration
(
cfg =>
{
cfg.ClearPrefixes();
cfg.RecognizeDestinationPrefixes("TD_");
cfg.CreateMap<TestSource, TestDest>();
}
);
IMapper lclMapper = lclConfig.CreateMapper();
lclMapper.Map(lclTS, lclTD);
}
结果将是
lclTS.id = 20
lclTD.id = 20&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;错了,我没有映射这个,没有前缀,这应该留30
lclTD.TD_id = 20
答案 0 :(得分:1)
自动映射器映射具有相同名称和类型的字段(如果未显式映射)。
尝试使用ForMember方法在字段之间创建显式映射。