1
我使用AutoMapper(V6.1.1)來映射某個實體對象將由一個網絡API REST Web服務在.NET 4.6返回DTO的對象。 2。基於屬性名稱C#AutoMapper自定義解析
現在我手動設置我的映射是這樣的:
Mapper.Initialize((config) =>
{
config.CreateMap<SignBook, sdk.SignBook>()
.ForMember(dto => dto.DocumentId, conf => conf.MapFrom(obj => obj.Document.Id))
.ForMember(dto => dto.UserId, conf => conf.MapFrom(obj => obj.User.Id))
.ForMember(dto => dto.DeviceId, conf => conf.MapFrom(obj => obj.Device.Id))
.ForMember(dto => dto.SignTypeId, conf => conf.MapFrom(obj => obj.SignType.Id))
.ForMember(dto => dto.StateId, conf => conf.MapFrom(obj => obj.State.Id))
.ReverseMap();
});
但是,正如你所看到的,DTO對象的所有屬性被簡單地命名爲像實體名稱+「ID」後綴(如:實體中的Document.Id
到DTO中的DocumentId
)。
由於我有很多實體映射,我想創建AutoMapper的映射規則(所以創建一個自定義解析器),將自動執行此操作。 它可能以某種方式?
當你需要這樣做時,是否還有一些最佳實踐?所以我想要做的是將實體對象映射到DTO對象。我的實體是NHibernate對象,它們之間有很多的實現,並且也使用了Lazy Loading,所以我不能直接將它們推回Web API方法結果以進行序列化。
我真的不知道它是如此簡單! –