gpt4 book ai didi

c# - Automapper - 忽略有条件的映射

转载 作者:可可西里 更新时间:2023-11-01 08:04:09 24 4
gpt4 key购买 nike

我正在使用自动映射器,我想知道是否可以在字段为空时忽略该字段的映射。

这是我的代码:

.ForMember(dest => dest.BusinessGroup_Id, 
opt => opt.MapFrom(src => (int)src.BusinessGroup))
  • src.BusinessGroup type = "enum"
  • dest.BusinessGroup_Id = int

目标是在 src.BusinessGroup = null 时取消映射。

最佳答案

我认为NullSubstitute选项就可以了

.ForMember(d => d.BusinessGroup_Id, o => o.MapFrom(s => (int?)s.BusinessGroup));
.ForMember(d => d.BusinessGroup_Id, o => o.NullSubstitute(0));

顺便说一句,你可以在映射操作中写下你的条件:

.ForMember(d => d.BusinessGroup_Id,
o => o.MapFrom(s => s.BusinessGroup == null ? 0 : (int)s.BusinessGroup));

更新如果您不能为您的属性分配一些默认值,您可以忽略它并且只映射而不是空值:

.ForMember(d => d.BusinessGroup_Id, o => o.Ignore())
.AfterMap((s, d) =>
{
if (s.BusinessGroup != null)
d.BusinessGroup_Id = (int)s.BusinessGroup;
});

关于c# - Automapper - 忽略有条件的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13194072/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com