[英]Custom AutoMapper name/type convention for all mappings?
我在ASP.NET MVC應用程序中使用AutoMapper 6.0在實體和視圖模型之間進行映射。 實體使用byte [8] Version屬性,但是視圖模型使用ulong Version屬性。 由於屬性類型不同,默認映射將忽略該字段,而我最終得到視圖模型的默認值(即0)。
目前,我在每個_mapper.Map(entity,viewModel);之后調用以下代碼:
_mapper.Map(entity,viewModel);
viewModel.Version = System.BitConverter.ToUInt64(entity.Version.ToArray(), 0);
如何在初始化期間配置AutoMapper,這樣就不需要第二行了?
我有數百種模型,所以我不想修改ForMmber(cfg)配置的自定義地圖,而是要修改AutoMapper約定,因此默認情況下,每種地圖的轉換類型都會發生,例如:
public class MyCustomProfile : AutoMapper.Profile
{
public MyCustomProfile()
{
CreateMissingTypeMaps = true;
//use custom converter for this convetion: ulong vVersion = BitConverter.ToUInt64(eVersion.ToArray(), 0);
}
}
您可以嘗試使用ConvertUsing進行類型映射:
CreateMap<byte, ulong>().ConvertUsing(System.Convert.ToUInt64);
根據要求編輯:
CreateMap<byte[], ulong>().ConvertUsing(x=> BitConverter.ToUInt64(x, 0));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.