我正在手动创建一个将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对象的映射,但是有没有更好的方法来处理对象列表呢?
发布于 2015-12-02 20:06:28
您可以考虑使用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);
}
}https://stackoverflow.com/questions/34032638
复制相似问题