我试图在这种情况下使用Automapper。 我有一个Entity(DDD实体对象)必须拥有所有属性和集合的私有setter,我必须将它映射到一个更简单的对象,该对象将使用存储在DB中。 实体有这样的代码:
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...
}`
持久友好对象
[Table("TypeA")]
public class TypeADao : EntityDao
{
public string Name { get; set; }
public string Description { get; set; }
public ICollection<TypeBDao> AssignedItems { get; set; }
}
使用Automapper可以轻松地将实体映射到Dao,但我没有做相反的事情,因为我需要将AssignedItems映射到实体中的私有支持字段_assignedItems。 我怎样才能做到这一点? 有没有办法将AssignedItems集合映射到名为_assignedItems的私有字段? 非常感谢所有
答案 0 :(得分:2)
我知道这可能有点太晚了,但对将来可能会遇到这个问题的人来说仍然有帮助。
以下是我解决映射私有字段问题的方法。
// 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;