0

我正在使用 Mapster 将值从基于 json 对象的 dto 映射到实体框架数据表。目标类有一个 [Column(TypeName = "datetime2(3)")] public DateTime? CorrectBy { get; set; }从表示日期的字符串填充的字段。字符串可以为空或“”。

是否有使用 Mapster 处理此问题的良好映射策略?我的映射当前如下所示:

TypeAdapterConfig<InModels.Violation, InspectionViolation>.NewConfig()
            .Map(d=>d.CorrectBy,s=>DateTime.Now,srcCond=>srcCond.CorrectBy=="")
            .Map(d => d.CorrectBy, s =>DateTime.Parse(s.CorrectBy))                
            .IgnoreNullValues(true);

但仍然抛出一个错误,说它不能将“”转换为日期时间。

4

1 回答 1

0

不支持将空字符串转换为DateTime. 您需要定义自定义字符串到日期时间的映射。

TypeAdapterConfig<string, DateTime?>.NewConfig()
    .MapWith(src => string.IsNullOrEmpty(src) ? null : (DateTime?)DateTime.Parse(src));
于 2020-05-08T00:59:08.840 回答