我正在创建一个简单的MVC4应用程序。
我有一个自动映射器。
Mapper.CreateMap<SourceClass, DestinationClass>()
.ForMember(dest => dest.IntphoneNo,
opt => opt.MapFrom(src => src.Stringphoneno));
IntphoneNo 是 Person
类中的变量,数据类型为int。源属性 Stringphoneno 的数据类型是string。
当我进行映射时,出现以下错误:
AutoMapper.dll 中发生了 'AutoMapper.AutoMapperMappingException' 类型的异常,但未在用户代码中处理
但是,如果我将 IntphoneNo 的数据类型从int更改为string,则我的程序可以成功运行。
不幸的是,在我的模型中无法更改数据类型。
是否有任何方法可以在映射中更改数据类型?类似于以下内容:
.ForMember(dest => dest.IntphoneNo,
opt => opt.MapFrom(src => src.Int32(Stringphoneno));
经过一些研究,我又向前迈进了一步...
如果我的StringPhoneNo是= 123456
那么以下代码将起作用。 我不需要将其解析为字符串
Mapper.CreateMap<SourceClass, DestinationClass>()
.ForMember(dest => dest.IntphoneNo,
opt => opt.MapFrom(src => src.Stringphoneno));
但当我的StringPhoneNo为12 3456(12后面有一个空格)时,我的代码就无法工作。
有没有办法在automapper中去除Stringphoneno中的空格(Stringphoneno是我从webservice获取的)。
类似以下方式:
Mapper.CreateMap<SourceClass, DestinationClass>()
.ForMember(dest => dest.IntphoneNo,
opt => opt.MapFrom(src => src.Trim(Stringphoneno)));