【问题标题】:Get Empty Collection instead of null when mapping with Mapster使用 Mapster 映射时获取空集合而不是 null
【发布时间】:2020-03-18 19:16:29
【问题描述】:

我们有一个庞大的数据驱动应用程序,涉及多个系统,因此需要大量映射。 由于性能问题,我们将从 AutoMapper 迁移到 Mapster。

到目前为止,使用 Mapster 一切都很好,但是在映射 Collections 时,Mapster 返回 null 值而不是空的 Collection

Automapper 过去默认返回空集合,但我无法弄清楚如何在 Mapster 中执行此操作。

我尝试过以下操作,但它不起作用

TypeAdapterConfig.GlobalSettings.ForDestinationType<ICollection>().IgnoreNullValues(true);

TypeAdapterConfig.GlobalSettings.ForType(typeof(ICollection), typeof(ObservableCollection<>))
                        .IgnoreNullValues(true);

TypeAdapterConfig.GlobalSettings.ForType(typeof(ObservableCollection<>), typeof(ICollection))
                        .IgnoreNullValues(true);

任何帮助都会很棒

【问题讨论】:

    标签: c# .net mapster


    【解决方案1】:

    感谢 Mapster 团队,我得到了它。在这里发布以防其他人需要它

    您可以通过以下方式显式配置它:

    TypeAdapterConfig.GlobalSettings.Default
        .AddDestinationTransform((IReadOnlyList<ChildDto> list) => list ?? new List<ChildDto>());
    

    Mapster 还添加了对AddDestinationTransform 的通用支持

    config.Default.AddDestinationTransform(DestinationTransform.EmptyCollectionIfNull);
    

    这对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-31
      • 1970-01-01
      • 2018-02-04
      • 2020-05-15
      • 2021-06-10
      • 2018-08-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多