首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象映射列表

对象映射列表
EN

Stack Overflow用户
提问于 2015-12-02 08:06:53
回答 1查看 1.5K关注 0票数 0

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

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

我的DAO对象如下所示:

代码语言:javascript
复制
MyObjectDao
{
    public int Id { get; set; }
    public string Name { get; set; }
}

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

代码语言:javascript
复制
MyObjectDto
{
   public int Id { get; set; }
   public string Name { get; set; }
   public string SomeOtherProperty { get; set; }
}

我的映射器是这样简单的:

代码语言:javascript
复制
public MyObjectDto ConvertFromDaoToDto(MyObjectDao daoObject)
{
   MyObjectDto dtoObject = new MyObjectDto();
   dtoObject.Id = daoObject.Id;
   dtoObject.Name = dtoObject.Name;

   return dtoObject;
}

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

EN

回答 1

Stack Overflow用户

发布于 2015-12-02 20:06:28

您可以考虑使用AutoMapper

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

代码语言:javascript
复制
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);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34032638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档