我尝试了许多选项来让 Automapper 正确映射父/子关系。
模型:
//Entity
public class WorkArea
{
public Guid Id;
public Name {get;set;}
public Guid? ParentWorkAreaId {get;set;} //for entity Framework Foreign Key
public WorkArea ParentWorkArea {get;set;}
public ICollection<WorkArea> ChildWorkareas {get;set;}
}
//DTO
public class WorkAreaDto
{
public Guid Id;
public Name {get;set;}
public Guid? ParentWorkAreaId {get;set;} //for entity Framework Foreign Key
public WorkAreaDto ParentWorkArea {get;set;}
public ICollection<WorkAreaDto> ChildWorkareas {get;set;}
}
此映射导致堆栈溢出:
Mapper.CreateMap<WorkArea,WorkAreaDto>();
我尝试了完全一样的东西并且有同样的错误
然后我创建了一个自定义的 TypeConverter,但我不仅要为孩子编写递归方法,还需要为父母编写递归方法。似乎很多工作确实可以正确映射。不确定我是否做错了什么。我正在使用 2.0
更新: 我认为我的问题是由实体框架生成的 System.Data.Entity.DynamicProxies。