AutoMapper - AutoMapperMappingException:错误映射类型

时间:2017-08-25 19:10:09

标签: c#-4.0 automapper

我收到此错误:

  

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)

1 个答案:

答案 0 :(得分:3)

opt.PreCondition(s => s.GameStartTime != null && s.GameEndTime != null);

The docs

同样,有一个先决条件。不同之处在于,在解决源值之前,它在映射过程中运行得更快(想想MapFrom或ResolveUsing)。因此调用前置条件,然后我们决定哪个将成为映射的源(解析),然后调用条件,最后分配目标值。你可以自己看看这些步骤。