对于某些属性,当值为 0 时,我想将值转换为 NULL。
创建地图时,我使用自定义解析器为我处理转换,如下所示:
AutoMapper.Mapper.CreateMap<ContactData, Contact>()
.ForMember(x => x.ContactTypeId, y => y.ResolveUsing<ContactTypeIdZeroToNullResolver>());
我的解析器看起来像:
using AutoMapper;
namespace MyCompany.MyProduct.Customers.Data.Helpers
{
public class ContactTypeIdZeroToNullResolver : ValueResolver<ContactData, int?>
{
protected override int? ResolveCore(ContactData source)
{
if (source.ContactTypeId == 0)
return null;
return source.ContactTypeId;
}
}
}
这工作得很好!
我的问题是,是否有可能使这个更通用?我尝试用 int 替换 ContactData,但不断抛出错误。