[英]How to pick IEnumerable<T> instead of List<T> from an ICollection<T>?
[英]How to map an ICollection<T> to Class derived from List<T>
我正在設置我的模型和我的視圖模型之間的映射,我正在嘗試從ICollection映射到從List派生的類
我試圖在我的ListItemClassVM和ICollection之間進行映射但是得到錯誤'參數類型不匹配'
選項一映射適用於此:
public class ParentVM
{
public List<ListItemClass> ListItemClasses { get; set; }
}
選項二映射不起作用:
public class ParentVM
{
public ListItemClassVM ListItemClasses { get; set; }
}
public ListItemClassVM : List<ListItemClass>
{
}
映射設置:
public ModelClass_ParentVM_Profile()
{
CreateMap<ModelClass, ParentVM>()
.ForMember(d => d.ListItemClasses, o => o.MapFrom(i => i.ModelCollection))
;
CreateMap<ParentVM, ModelClass>()
;
}
嘗試設置映射,因此選項二將映射。
我認為有更多的方法可以達到解決方案,但是你無法擺脫從ICollection <ListItemClass>到ListItemClassVM的手動轉換。 更簡單的方法可能是向ListItemClassVM添加一個構造函數,該構造函數接受ICollection <ListItemClass>並使用ICollection中的元素初始化自身,然后您可以執行以下操作:
CreateMap<ModelClass, ParentVM>()
.ForMember(d => d.ListItemClasses, o => o.MapFrom(i =>new ListItemClassVM (i.ModelCollection)))
;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.