use*_*494 13 c# automapper asp.net-mvc-3
我正在使用automapper,我想知道当该字段为空时是否可以忽略字段的映射.
那是我的代码:
.ForMember(dest => dest.BusinessGroup_Id,
opt => opt.MapFrom(src => (int)src.BusinessGroup))
Run Code Online (Sandbox Code Playgroud)
src.BusinessGroup type = "enum" dest.BusinessGroup_Id = int目标是,如果src.BusinessGroup = null,那就是映射.
Ser*_*kiy 26
我认为NullSubstitute选项可以解决问题
.ForMember(d => d.BusinessGroup_Id, o => o.MapFrom(s => (int?)s.BusinessGroup));
.ForMember(d => d.BusinessGroup_Id, o => o.NullSubstitute(0));
Run Code Online (Sandbox Code Playgroud)
顺便说一下,您可以在映射操作中编写条件:
.ForMember(d => d.BusinessGroup_Id,
o => o.MapFrom(s => s.BusinessGroup == null ? 0 : (int)s.BusinessGroup));
Run Code Online (Sandbox Code Playgroud)
更新如果您不能为您的属性分配一些默认值,您可以忽略它并仅映射非空值:
.ForMember(d => d.BusinessGroup_Id, o => o.Ignore())
.AfterMap((s, d) =>
{
if (s.BusinessGroup != null)
d.BusinessGroup_Id = (int)s.BusinessGroup;
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12019 次 |
| 最近记录: |