【问题标题】:Copy values from object1 to object2 using AutoMapper使用 AutoMapper 将值从 object1 复制到 object2
【发布时间】:2017-05-01 09:07:30
【问题描述】:

我有 Person 类

public class Person
{
   public int PersonID { get; set; }
   public string FullName { get; set; }
   public int InternalValue { get; set; }
}

而且,这是我的 DTO 课程

public class PersonDto
{
   public int person_id { get; set; }
   public string full_name { get; set; }
}

我正在使用 AutoMapper 和 AutoMapper.Attributes 来执行映射,如下所示;

[MapsTo(typeof(Person))]
public class PersonDto
{
   [MapsToProperty(typeof(Person), "FullName")]
   public int full_name { get; set; }
}

我有一个接受 PersonDto 并使用实体框架保存到数据库中的 API。请注意,InternalValue 在 DTO 类中不可用,这是一个秘密值:)。

我的问题是; 是否有可能使用 AutoMapper 将值从 PersonDto 对象复制到 Person 对象?我发现了一些类似的问题,但找不到严格的答案。

在此先感谢您的帮助。

【问题讨论】:

    标签: c# automapper


    【解决方案1】:

    要从 PersonDto 映射到 Person,您需要配置属性以允许反向配置。

    将属性更改为如下所示:

    [MapsTo(typeof(Person), ReverseMap = true)]
    

    这将允许为 PersonDto -> Person 调用 AutoMapper,要查看更多信息,您可以查看项目的 README here

    【讨论】:

    • 只是添加,现在我可以调用它来获得最终结果; Mapper.Map(personDtoObj, personObj);
    【解决方案2】:

    只是为了扩展上一个答案,如果您通过 automapper congif 文件或 code 进行映射,您可以这样做:

    AutoMapper.Mapper.CreateMap<PersonDto,Person>().ReverseMap();
    

    【讨论】:

    • 感谢您的回答。但是,我喜欢使用 AutoMapper.Attributes 库,这样我就可以在类定义本身中编写映射详细信息。
    猜你喜欢
    • 1970-01-01
    • 2013-10-14
    • 2015-01-26
    • 1970-01-01
    • 2014-11-13
    • 2023-03-16
    • 1970-01-01
    • 2012-05-02
    • 2018-01-21
    相关资源
    最近更新 更多