2016-02-27 109 views
0

我在撓我的腦袋,試圖讓automapper忽略一個屬性,希望有人可以告訴我我在做一些愚蠢的事情!AutoMapper問題 - 無法忽略的屬性

領域模型

public class RamsDocument 
{ 
    // properties... 

} 

public class Contract 
{ 
    // properties... 
    Public IColleciton<RamsDocument> RamsDocuments {get; set;} 

} 

視圖模型

public class RamsList 
{ 
    // properties... 

} 

public class Contract 
{ 
    // properties... 
    Public IList<RamsList> RamsDocuments {get; set;} 

} 

我已經嘗試了所有組合得到它忽略RamsDocuments屬性,你可以看到他們是不同類型的。

Mapper.CreateMap<Domain.Models.Contract, ViewModels.Contract>() 
       .ReverseMap() 
       .ForMember(ignore => igonre.RamsDocuments, opt => opt.Ignore()) 
       .ForSourceMember(ignore => igonre.RamsDocuments, opt => opt.Ignore()); 

我有一個工作,將視圖模型上的屬性重命名爲RamsList而不是RamsDocuments,它工作正常。

如果我走試圖映射

AutoMapperMappingException時命名爲RamsDocuments它收到以下錯誤兩個屬性:缺少類型映射配置或 不支持的映射。

映射類型:RamsDocuments - > RamsList CenelecSiteInspector.Domain.Models.RamsDocuments - > CenelecSiteInspector.WebPresentation.ViewModels.RamsList

目標路徑: Contract.Site.Site.Contracts.Contracts.Contracts0 [0 ] .RamsDocuments0 [0] .RamsDocuments0 [0] .RamsDocuments0 [0]

Source值: System.Data.Entity.DynamicProxies.RamsDocuments_B721359E9A40092B947528944166EA0B12FD5C0B9E9FFD19D91C8409CF04133E

+0

我希望'ignore => igonre.RamsDocuments'是一個錯字,而不是封閉中捕獲的某個'igonre'變量。 –

回答

1

嘗試在反向映射之前放置忽略,因爲您單向忽略該屬性。

+0

謝謝,我知道這會是簡單的事情! – Phil

+0

歡迎您@Phil – Alcruz