AutoMapper和对帐?

时间:2013-04-25 00:45:30

标签: c# .net automapper automapper-2

如何使用自动映射器协调列表?

例如给定一个类

public class SomeEntity
{
    public Guid Id {get; set;}
    public string Name {get; set;}
}

还有一个过分的课程

public class SomeAggregate
{
    public IEnumerable<SomeEntity> EntityEnumeration {get;set;}
}

为了这个问题(我的实际要求有点不同)。我需要将SomeAggregate的实例映射到它的另一个实例。我想使用AutoMapper,但我需要自定义EntityEnumeration的填充方式。

这就是我想要实现的目标:

Mapper.CreateMap<SomeAggregate,SomeAggregate>()
    .ForMember(d => d.SomeAggregate, *** MISSING LOGIC ***);

Mapper.Map(newInstance, existing);
需要使用检查以下内容的代码替换

* MISSING LOGIC *

  1. 如果为null,则复制所有RHS
  2. 如果它不为空,请检查LHS是否具有相同Id的成员,如果不是从RHS添加成员。
  3. 如果LHS具有相同的Id,只需更新匹配实体的Name属性。
  4. 如果LHS的RHS中不存在Id,请从LHS中删除Id
  5. 我甚至不知道从哪里开始,因为我无法在同一个lambda委托中获得LHS和RHS的实例来进行这种比较。至少没有任何内置选项似乎让我做这种映射。我认为这应该是一个相当常见的用例。

    请帮忙。

0 个答案:

没有答案