0

我正在手动创建一个将 DAO 对象转换为 DTO 的映射器。*** 顺便说一句,我知道 AutoMappers,但出于几个原因,我想手动执行此操作。

映射器本身并不难。我需要帮助的是映射一个列表。我是否需要在 foreach 循环中处理每个对象映射,或者是否有更好的方法来创建一个既可以处理映射单个对象又可以处理对象列表的映射器?

我的 DAO 对象如下所示:

MyObjectDao
{
    public int Id { get; set; }
    public string Name { get; set; }
}

假设我的 DTO 对象如下所示:

MyObjectDto
{
   public int Id { get; set; }
   public string Name { get; set; }
   public string SomeOtherProperty { get; set; }
}

我的映射器就这么简单:

public MyObjectDto ConvertFromDaoToDto(MyObjectDao daoObject)
{
   MyObjectDto dtoObject = new MyObjectDto();
   dtoObject.Id = daoObject.Id;
   dtoObject.Name = dtoObject.Name;

   return dtoObject;
}

正如我上面提到的,我可以通过 FOREACH 循环来处理每个 DAO 对象到 DTO 对象的映射,但是有没有更好的方法来处理对象列表?

4

1 回答 1

0

您可以考虑使用AutoMapper

我还将创建一个 MyObjectDtoMapper 类来封装转换:

public class MyObjectDtoMapper 
{
    public MyObjectDtoMapper()
    {
        // configure AutoMapper here
    }

    public MyObjectDto Map(MyObjectDao daoObject)
    {
       var dtoObject = // map from daoObject with AutoMapper
       return dtoObject;
    }

    public IEnumerable<MyObjectDto> Map(IEnumerable<MyObjectDao> daoObjects)
    {
       return daoObjects.Select(Map);
    }
}
于 2015-12-02T12:06:28.123 回答