我正在尝试将我的域模型展平为合同类型
这是我的模特:
public interface IPrice
{
IItem Item { get; set; }
Money Money {get; set;}
}
public interface IItem
{
IItemHeader Header { get; set; }
}
public interface IItemHeader
{
string Name{ get; set; }
}
这是我的合同:
public class Price
{
public string Name{ get; set; }
}
现在,我知道如果我将合同名称字段更改为 ItemHeaderName AutoMapper将处理该问题,并在我在IPrice和Price之间进行映射时设置正确的值。但如果我不喜欢这个名字(即ItemHeaderName)并坚持使用“名称”呢?还有其他选择吗?
答案 0 :(得分:2)
如果你只称它为Name,那么你需要MapFrom。如果默认命名约定对您不起作用,您也可以使用自定义命名约定。
答案 1 :(得分:0)
我们需要做类似的事情:
CreateMap<Contract.Entities.Price, Model.Entities.IPrice>().
ReverseMap().
ForMember(model => model.Name, model => model.MapFrom(src => src.Item.Header.Name)).