1

我的 Code First 数据模型中有几个不可为空的 GUID 属性,它们映射到Guid?我的视图模型中。我没有使用空 GUID(全为零),所以我使用以下映射,但我不禁想知道是否有更简洁的方法来做到这一点?AutoMapper 配置的未知深度将花费我数年时间独自探索。

Mapper.CreateMap<Guid, Guid?>().ConvertUsing(guid => guid == Guid.Empty ? (Guid?)null : guid);
Mapper.CreateMap<Guid?, Guid>().ConvertUsing(guid => !guid.HasValue ? Guid.Empty : guid.Value);
4

1 回答 1

1

创建自定义类型转换器。

https://github.com/AutoMapper/AutoMapper/wiki/Custom-type-converters

 public class NullableByteToNullableIntConverter : ITypeConverter<Byte?, Int32?>
    {
        public Int32? Convert(ResolutionContext context)
        {
            return context.IsSourceValueNull ? (int?) null : System.Convert.ToInt32(context.SourceValue);
        }
    }

然后:

  Mapper.CreateMap<byte?, int?>().ConvertUsing<NullableByteToNullableIntConverter>();
于 2012-04-23T18:31:44.070 回答