我想创建一个匿名方法,该方法使用AutoMapper将任何实体快速转换为其已映射的DTO之一。这是我的代码:
public static class Maps
{
public static IMapper Mapper;
public static void Init()
{
var config = new MapperConfiguration(cfg =>
cfg.CreateMap<Customer, DTO.Customer>());
Mapper = config.CreateMapper();
}
public static Dto ToDto<Entity, Dto>(this Entity entity)
{
return Mapper.Map<Dto>(entity);
}
}
这有效,我可以在我的服务层中使用它:
public DTO.Customer GetById(int Id)
{
return dbSet.FirstOrDefault(x => x.Id == Id).ToDto<Customer, DTO.Customer>();
}
但是,由于我的FirstOrDefault()
结果属于Customer
类型,因此将其置于通话中似乎是多余的。如何更改ToDto()
方法,以便我不需要添加Entity
,只需使用ToDto<DTO.Customer>()
调用它?