复杂的映射可在两个不同的目标对象之间拆分源属性

我正在寻找通过Automapper实现以下结果所需的配置:

public class User {
    public string Id { get; set; }
    publlis string Login { get; set; }
}

public class Entity {
    public string Id { get; set; }
    public IDictionary<string,object> Data { get; set; }
}

var data = new List<IDictionary<string,object>>() 
{ 
    new Dictionary<string,object> { { "user_id","foo" },{ "user_login","login" },{ "emp_id","bar" },{ "emp_fizz","value1" },{ "emp_buzz","value2" }}
};

var result = mapper.Map<IList<(User Item1,Entity Item2)>>(data);

result[0].Item1.Id.Should().Be("foo");
result[0].Item1.Login.Should().Be("login");
result[0].Item2.Id.Should().Be("bar");
result[0].Item2.Data["fizz"].Should().Be("value1");
result[0].Item2.Data["buzz"].Should().Be("value2");

请注意:

  1. 源属性在源数据中添加前缀,以使 两个目标对象之间的差异
  2. 来源与目的地之间的情况不同 属性(删除前缀后)。例如。 “ id”与“ Id”,或 “登录”与“登录”
  3. 某些值必须输入到实体目标的字典(数据)中 对象和其他一些对象必须提供常规属性(例如,Id)

是否可以为此目的配置Automapper? 如果是的话,关于配置的任何线索都应该受到赞赏。

huyang1644 回答:复杂的映射可在两个不同的目标对象之间拆分源属性

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2363520.html

大家都在问