gpt4 book ai didi

AutoMapper优雅地处理NULL

转载 作者:行者123 更新时间:2023-12-04 01:05:34 27 4
gpt4 key购买 nike

我正在将一个嵌套很深的实体映射到一个展平的Dto对象,并且想知道如何使用AutoMapper优雅地处理它。我知道我可以在映射每个属性时对它们进行空检查,但是对于诸如此类的事情,这将变得非常难看:

ForMember(s => s.Property, o => o.MapFrom(s => s.Parent.Child1.Child2.Child3.Property)

因此,我想我可以对同一目标对象使用各种映射配置...但是相对而言,AutoMapper并不熟练,因此我不确定这样做的性能含义是什么。我还有什么其他更好的方法可以实现自己想要的?

重申一下,我希望避免这样的事情(我知道下面的代码可能不会编译...这只是一个示例),我必须为每个成员的 做这些事情:
ForMember(s => s.Property, o => o.MapFrom(
s => s.Parent == null ? string.Empty :
s => s.Parent.Child1 == null ? string.Empty :
s => s.Parent.Child1.Child2 == null ? string.Empty :
s => s.Parent.Child1.Child2.Child3 == null ? string.Empty :
s => s.Parent.Child1.Child2.Child3.Property));

最佳答案

我认为AutoMapper实际上会自动为您处理null传播。你的例子:

ForMember(s => s.Property, o => o.MapFrom(s => s.Parent.Child1.Child2.Child3.Property)

如果任何中间成员是 null,则应解析为 null(我认为)。

示例: https://dotnetfiddle.net/hMo3wa

关于AutoMapper优雅地处理NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29229788/

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