Jos*_*una 3 .net c# mapping automapper
我有以下课程:
public class Entity
{
public string Name { get; set; }
}
public class SomethingDto
{
public string NameChanged { get; set; }
public void Mapping(Entity something)
{
NameChanged = something.Name;
}
}
Run Code Online (Sandbox Code Playgroud)
我想使用 DTO 的映射方法来创建地图,如下所示:
conf.CreateMap<Entity, SomethingDto>().ForMember(t => t.NameChanged, opt => opt.MapFrom(t => t.Name));
Run Code Online (Sandbox Code Playgroud)
AutoMapper 中有一种方法可以使用自定义方法创建地图,谁使用他的投影?
您不想这样做,因为这会让 DTO 意识到该实体,并且会消除您所获得的分离。
现在在这种情况下,该行将ForMember(t => t.NameChanged, opt => opt.MapFrom(t => t.Name))起作用,因为Name和NameChanged都是类型string。假设您想要执行一些操作,将类型string为“ 20180120-00123456 ”的标识符映射到目标上的两个属性:一个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(现在我假设标识符用于订单),仅包含属性Idas string。然后,您将创建两个自定义类型转换器,如本文所述。
| 归档时间: |
|
| 查看次数: |
13400 次 |
| 最近记录: |