使用 Mapster 将一个 Class 属性映射到两个不同的 class 属性

Map one Class properties to two different class properties using Mapster

我有 3 个 类,名称分别为 Employee、EmployeeTwo 和 EmployeeThree,我想将 Employee 映射到 EmployeeTwo,将 Employee 映射到 EmployeeThree。

以下是 Class。 我还尝试在 Employee Class 属性 上定义 AdaptMember 属性,但它只定义了一个,我必须用两个不同的映射它。

注意:我无法为 EmployeeTwo 和 EmployeeThree 类 定义任何属性,因为它来自 API 并且可以重新生成。

public class Employee
{ 
    [AdaptMember(nameof(EmployeeTwo.EmployeeID))]
    public int ID { get; set; } 
    [AdaptMember(nameof(EmployeeTwo.EmployeeName))]
    public string Name { get; set; } 
}

public class EmployeeTwo
{
    
    public int EmployeeID { get; set; }

    
    public string EmployeeName { get; set; }

}

public class EmployeeThree
{
    
    public int EmployeeThreeID { get; set; }
    
    public string EmployeeThreeName { get; set; }
}

非常感谢任何帮助。

据我了解,您想使用 mapster 制作自定义对象映射。 如果你想制作自定义映射,你需要创建一个 class:

using Mapster;

namespace Application.Mapsters
{
    public class Config : ICodeGenerationRegister
    {
        public void Register(CodeGenerationConfig config)
        {
            TypeAdapterConfig<Employee, EmployeeTwo>
                .NewConfig()
                .Map(dst => dst.EmployeeID, src => src.ID)
                .Map(dst => dst.EmployeeName, src => src.Name);
        }
    }
}

例如,按照此示例查看如何使用 mapster 制作自定义映射:

https://floatincode.net/2021/07/26/mapster-generate-dto-async-after-map-actions-dependency-injection/