首页 > 解决方案 > 如何通过 Automapper 10+ 将两个不同的对象与嵌套集合合并?

问题描述

请考虑以下源代码

// Data Model
public class CustomerDataModel
{
    public string Name { get; set; }
    public string Family { get; set; }
    public IEnumerable<CustomerDetailDataModel> CustomerDetail { get; set; }
    public CustomerDataModel()
    {
        CustomerDetail = new List<CustomerDetailDataModel>();
    }
}
public class CustomerDetailDataModel
{
    public int Id { get; set; }
    public string Info { get; set; }
}

// Request Model
public class CustomerRequestModel
{
    public string Name { get; set; }
    public IEnumerable<CustomerDetailRequestModel> CustomerDetail { get; set; }
    public CustomerRequestModel()
    {
        CustomerDetail = new List<CustomerDetailRequestModel>();
    }
}
public class CustomerDetailRequestModel
{
    public int Id { get; set; }
}

现在考虑这些值

// Data Model
var customerDetailDataModel = new List<CustomerDetailDataModel>();
customerDetailDataModel.Add(new CustomerDetailDataModel() { Id = 1, Info = "nothing" });
var customerDataModel = new CustomerDataModel()
{
    Name = "Jack",
    Family = "Robbin",
    CustomerDetail = customerDetailDataModel
};

// Request Model
var customerDetailRequestModel = new List<CustomerDetailRequestModel>();
customerDetailRequestModel.Add(new CustomerDetailRequestModel() { Id = 2 });
var customerRequestModel = new CustomerRequestModel()
{
    Name = "Maya",
    CustomerDetail = customerDetailRequestModel
};

如何使用 Automapper 10+合并数据CustomerDataModel也可以反向合并数据?CustomerRequestModel

如果目标中存在数据,则保留它,如果不合并它(将其替换为源)。

标签: c#automapper

解决方案


推荐阅读