Automapper - 如何映射私有支持字段

Gne*_*gno 2 c# automapper

我正在尝试在这种情况下使用 Automapper。我有一个实体(DDD 实体对象),它必须具有所有属性和集合的私有设置器,并且我必须将其映射到一个更简单的对象,该对象将存储在数据库中。该实体有这样的代码:

    public class TypeA : Entity
{
    private List<TypeB> _assignedItems;
    public IEnumerable<TypeB> AssignedItems
    {
        get { return _assignedItems.ToList(); }
    }

    public string Name { get; private set; }

    public string Description { get; private set; }

    ...etc...
}`
Run Code Online (Sandbox Code Playgroud)

以及持久化友好的对象

[Table("TypeA")]
public class TypeADao : EntityDao
{
    public string Name { get; set; }

    public string Description { get; set; }

    public ICollection<TypeBDao> AssignedItems { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

使用Automapper可以轻松地将实体映射到Dao,但我无法做相反的事情,因为我需要将AssignedItems映射到实体中的私有支持字段_assignedItems。我怎样才能做到这一点?有没有办法将AssignedItems集合映射到名为_assignedItems的私有字段?非常感谢大家

HEx*_*xit 5

我知道这可能来得太晚了,但对于将来可能遇到此问题的人来说仍然应该有帮助。

这是我解决映射私有字段问题的方法。

// Please refer to https://github.com/AutoMapper/AutoMapper/issues/600
// Please refer to https://github.com/AutoMapper/AutoMapper/issues/946
ShouldMapField = fieldInfo => !fieldInfo.IsDefined(typeof(System.Runtime.CompilerServices.CompilerGeneratedAttribute));
ShouldMapProperty = propertyInfo => true;
Run Code Online (Sandbox Code Playgroud)