我有以下课程及其dto:
public class Node
{
public int NodeId { get; set; }
public virtual ICollection<Node> ChildrenNode { get; set; }
public virtual Node ParentNode { get; set; }
}
public class NodeDto
{
public int NodeId { get; set; }
public ICollection<NodeDto> ChildrenNode { get; set; }
public NodeDto ParentNode { get; set; }
}
我的映射器很简单:
Mapper.CreateMap<Node, NodeDto>();
当我从IQueryable调用ProjectTo时,我得到一个StackOverflowException。我已经尝试了Mapper.CreateMap<Node, NodeDto>().MaxDepth(3)
和Mapper.CreateMap<Node, NodeDto>().PreserveReferences()
,但这些都没有效果。
我可以做些什么来保持自我参考?
如果它有任何帮助,我需要从任何depht访问ParentNode和ChildrenNode,但在ParentNode中我不需要ChildrenNode。这样的事情:node.ParentNode
和node.ChildrenNode[0].ChildrenNode
,但不需要node.ParentNode.ChildrenNode
;