转换为DTO的通用方法:我如何知道调用对象的类型?

时间:2016-03-02 09:35:05

标签: c# .net automapper anonymous-function anonymous-types

我想创建一个匿名方法,该方法使用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>()调用它?

0 个答案:

没有答案