簡體   English   中英

使用AutoMapper的基類屬性的自定義映射

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM