我有以下课程:
public class Entity
{
public string Name { get; set; }
}
public class SomethingDto
{
public string NameChanged { get; set; }
public void Mapping(Entity something)
{
NameChanged = something.Name;
}
}
我想使用DTO的Mapping Method按以下方式创建地图:
conf.CreateMap<Entity, SomethingDto>().ForMember(t => t.NameChanged, opt => opt.MapFrom(t => t.Name));
AutoMapper中有一种方法可以使用自定义方法创建地图,并使用他的投影吗?
答案 0 :(得分:0)
你不希望这样做,因为这会让DTO意识到这个实体,并且会抛弃你得到的分离。
现在,在这种情况下,行Dir.glob(File.join(path, "*"))
将起作用,因为ForMember(t => t.NameChanged, opt => opt.MapFrom(t => t.Name))
和Name
都属于NameChanged
类型。假设您想要将类型为string
的值为' 20180120-00123456 '的标识符映射到目标上的两个属性:string
属性和一个DateTime
财产。你可以这两种方式。
您可以在进行映射的类中编写两个映射函数,并按以下方式执行:
ProductId
ForMember(t => t.Date, opt => opt.MapFrom(t => RetrieveDate(t.Identifier)))
您将创建一个自定义类ForMember(t => t.ProductId, opt => opt.MapFrom(t => RetrieveProductId(t.Identifier)))
(现在我假设标识符用于订单),只有OrderIdentifier
属性为Id
。然后你会像文章描述的那样制作两个custom type converters。