Automapper null string to empty
When I try to map an object that has a null string property, the destination is also null. Is there a global settings I开发者_JAVA技巧 can turn on that says all null string should be mapped to empty?
Something like this should work:
public class NullStringConverter : ITypeConverter<string, string>
{
public string Convert(string source)
{
return source ?? string.Empty;
}
}
And in your configuration class:
public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.CreateMap<string, string>().ConvertUsing<NullStringConverter>();
Mapper.AddProfile(new SomeViewModelMapper());
Mapper.AddProfile(new SomeOtherViewModelMapper());
...
}
}
If you need a non-global setting, and want to do it per property:
Mapper.CreateMap<X, Y>()
.ForMember(
dest => dest.FieldA,
opt => opt.NullSubstitute(string.Empty)
);
Similar to David Wick's answer, you can also use ConvertUsing
with a lambda expression, which eliminates the requirement for an additional class.
Mapper.CreateMap<string, string>().ConvertUsing(s => s ?? string.Empty);
精彩评论