我有一個System.StackOverflowException
試圖映射在AutoMapper 5東西,與AutoMapper 4.遷移到AutoMapper 5 - 循環引用
曾任職谷歌上搜索了一下四周,我發現,它引起Circular references後時。
的AutoMapper文件說:
此前,AutoMapper可以通過保持 跟蹤什麼被映射處理循環引用,並在每一個映射,檢查本地 哈希表源/目標對象,看是否物品已映射到 。事實證明,這種跟蹤非常昂貴,你需要 選擇使用PreserveReferences來使圓形地圖起作用。 或者,您可以配置MAXDEPTH:
// Self-referential mapping cfg.CreateMap<Category, CategoryDto>().MaxDepth(3); // Circular references between users and groups cfg.CreateMap<User, UserDto>().PreserveReferences();
因此,我增加.MaxDepth(3)
我的代碼,它現在再次工作。
但是我不undertand真正的問題是什麼,我做什麼,通過將行:)
我的問題:
- 什麼手段在分類/ CategoryDto的問候「循環引用」?
.MaxDepth()
究竟是什麼?爲什麼在樣本中使用3?- 什麼是
.PreserveReferences()
?
我將深度設置爲1.仍堆棧溢出......!感覺現在配置正在聽我們... –