我正在處理MVC 4項目並嘗試將KeyValue列表中的值轉換爲可爲空的DateTime。我已經使用的映射以下行(我不包括其他屬性也有不少)Automapper使用不返回空值
.ForMember(d => d.Deadline, m => m.ResolveUsing<DeadlineResolver>())
我的解析器是這樣的:
public class DeadlineResolver : ValueResolver<Booking, DateTime?>
{
protected override DateTime? ResolveCore(Booking source, ResolutionResult resolutionResult)
{
KeyValue keyValue = source.KeyValues.FirstOrDefault(k => k.Key.KeyId == "DEADLINE");
return (keyValue != null) ? DateTime.Parse(keyValue.Value) : (DateTime?)null;
}
}
期限的值,它是定義如下所示不會返回爲空,而是返回DateTime.MinDate。當我在視圖中綁定結果時,我需要它爲空,以便在有日期時僅顯示值。
public DateTime? Deadline { get; set; }
如何使這些值空但不超過該值映射後找分鐘日期和設置爲null(臨時劈我已經到位,使代碼運行)?
什麼是KeyValue?這是你定義的類嗎? – Graham 2013-03-19 18:21:18
您是否嘗試過允許空目的地值? 'Mapper.Initialize(c => c.AllowNullDestinationValues = true);' – Mightymuke 2013-03-19 23:54:42
KeyValue是一個業務層對象,所以我不知道它的全部用途,因爲我專門在UI層上工作,包括從業務層到UI層寫入映射,但如果您認爲它的重要@Graham,我可以將它的詳細信息發佈清楚。 – 2013-03-20 08:50:21