我正在嘗試編寫下一個案例的映射配置。我有域對象:如何在Automapper 6中使用比源代碼更少的屬性映射到目標?
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string ImagePath { get; set; }
public virtual ICollection<Service> Services { get; set; }
public int? SubcategoryId { get; set; }
[ForeignKey("SubcategoryId")]
public virtual Category Subcategory { get; set; }
}
而且DTO映射:
public class CategoryDto
{
public int Id { get; set; }
public string Name { get; set; }
public string ImagePath { get; set; }
}
問題是,目標類具有以下性質,比源極。如果我使用簡單的地圖,我會得到一個異常。我不能使用Ignore()
,因爲它將應用於目標類,而不是源代碼。由於某種原因,方法ForSourceMember()
也沒有幫助。我讀this的問題,大多數情況下都可以,但屬性Services
不是null
,它是Count = 0
,當它爲空時。我也閱讀了一些類似的問題,但他們沒有幫助,也許他們在以前的版本中工作過。
希望有人可以幫助我找到解決辦法,或解釋我錯過了什麼。
地圖沒有問題,實際上就是這個想法,你的目的地可以有更少的東西。所以我不知道你看到了什麼錯誤,但就AM而言,你的地圖是好的。 –
@LucianBargaoanu具有消息:錯誤映射類型的「AutoMapperMappingException」異常。映射類型:'IEnumerable'1 - > List'1 System.Collections.Generic.IEnumerable'1 [[DomainEntities.Category]] - > System.Collections.Generic.List'1 [[Web.Dtos.CategoryDto]]''。內部例外是缺少類型映射配置或不支持的映射。映射類型:類別 - > CategoryDto,DomainEntities.Category - > Web.Dtos.CategoryDto'。 'Mapper.Map,List >(_ unitOfWork.Categories.GetAll())'拋出異常。通常這意味着他找不到一對支柱 –
QuarK
repro會有幫助。製作[gist](https://gist.github.com/lbargaoanu/9c7233441c3a3413cc2b9b9ebb5964a9),我們可以執行並看到失敗。 –