Я работаю над проектом MVC 4 и пытаюсь преобразовать значение в список KeyValue в нулевое значение DateTime. Я использовал следующую строку в картографа (я не включены другие свойства, поскольку есть много)Automapper resolveusing не возвращает нули
.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;
}
}
Значение срока, который как показано ниже, никогда не возвращается как null, а DateTime.MinDate. Мне нужно, чтобы оно было null, когда я привязываю результат к представлению, чтобы я показывал только значение, когда есть дата.
public DateTime? Deadline { get; set; }
Как сделать эти значения NULL, не превышая значения после отображения искать даты мин и установить пустое значение (временный хак я положил на месте, так что код работает)?
Что такое 'KeyValue'? Это класс, который вы определили? – Graham
Вы пытались разрешить нулевые значения назначения? 'Mapper.Initialize (c => c.AllowNullDestinationValues = true);' – Mightymuke
KeyValue - это объект бизнес-уровня, поэтому я не знаю, что это полная цель, поскольку я работаю исключительно на уровне пользовательского интерфейса, включая написание сопоставлений от бизнеса до уровня пользовательского интерфейса, но Я могу опубликовать подробности об этом для ясности, если вы считаете его важным @Graham? –