簡體   English   中英

AutoMapper MaxDepth()方法

[英]AutoMapper MaxDepth() method

在我的項目中,我與Client -> Projects有一對多的關系。 因此,在我的一個視圖中,我試圖顯示屬於該客戶端的所有項目。 所以我有一個代表所有客戶端項目的IEnumerable<ProjectDetailsViewModel>

問題是ProjectDetailsViewModel有一個ClientDetailsViewModel ,然后有一個IEnumerable<ProjectDetailsViewModel>等等,創建了一個無限循環的相同實體。

這是否適合在.ForMember()上使用MaxDepth()方法? 如果是這樣,我在這種情況下如何使用它,如果沒有,解決方案是什么?

我在Client上嘗試過MaxDepth(1),雖然這可以防止StackOverflow異常,但它不會在該客戶端的視圖模型中保存任何數據。

問題是我使用AutoMapConfig顯式調用了AutoMapper:

.ForMember(x => x.Client, opt => opt.MapFrom(src =>
    AutoMapper.Mapper.Map<ClientDetailsViewModel>(src.Client)))

如果我只是將其定義為:

.ForMember(x => x.Client, opt => opt.MapFrom(src => src.Client))

AutoMapper將知道在1次遞歸后停止,並且因為我已經有來自Client -> ClientDetailsViewModel的地圖,所以沒有問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM