[英]Custom map for base class' property using AutoMapper
我有以下型號:
public class BaseEntity
{
public DateTime CreatedDate { get; set; }
public DateTime ModifiedDate { get; set; }
}
public class Child1 : BaseEntity { }
public class Child2 : BaseEntity { }
日期以UTC格式寫入我的數據庫中,但是當我將其拉出到視圖模型中時,我希望日期以本地時間顯示。 所以這就是我嘗試的:
Mapper.CreateMap<BaseEntity, BaseViewModel>()
.ForMember(e => e.CreatedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.CreatedDate)))
.ForMember(e => e.ModifiedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.ModifiedDate)));
這是行不通的。 僅當我為子類顯式創建映射時,它才起作用,就像這樣,我認為這樣做是不合理的:
Mapper.CreateMap<Child1, Child1ViewModel>()
.ForMember(e => e.CreatedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.CreatedDate)))
.ForMember(e => e.ModifiedDate, b => b.MapFrom(x => DateHelper.ConvertToLocalTimeZone(x.ModifiedDate)));
我進行了一些搜索,但是沒有找到似乎可以在基類上處理自定義映射的解決方案。
提前致謝。
這樣的顯示邏輯應在您的視圖中完成,而不是在視圖模型中完成。 將視圖模型保留為DateTime,然后根據您的視圖技術,創建模板化的幫助器或HtmlHelper擴展,以標准化日期的顯示方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.