我收到此错误:
AutoMapperMappingException:错误映射类型。
映射类型:游戏 - > VirtualGame
InvalidOperationException:Nullable对象必须有值。
属性:时间lambda_method(关闭,对象,对象, ResolutionContext)
AutoMapperMappingException:错误映射类型。
我想我已将其追溯到下面的代码块。有没有办法在这个块中检查null,以免这个错误消失?
cfg.CreateMap<Game, VirtualGame>()
.ForMember(d => d.GameTiming, opt =>
{
opt.Condition(s => s.GameStartTime != null && s.GameEndTime != null);
opt.MapFrom(
s => new Timing(s.GameStartTime.Value, s.GameEndTime.Value, s.GameDuration));
})
哦,这就是“时间”:
public Timing(DateTime gameStartTime, DateTime gameEndTime, Int32?
gameDuration = null)
答案 0 :(得分:3)
opt.PreCondition(s => s.GameStartTime != null && s.GameEndTime != null);
同样,有一个先决条件。不同之处在于,在解决源值之前,它在映射过程中运行得更快(想想MapFrom或ResolveUsing)。因此调用前置条件,然后我们决定哪个将成为映射的源(解析),然后调用条件,最后分配目标值。你可以自己看看这些步骤。