Проблема объединения объектов с AutoMapper - PullRequest
0 голосов
/ 28 февраля 2019

Я нашел этот пост, описывающий, как условно копировать значения для целевого объекта, если они не равны нулю.

Прекрасно работает, за исключением элементов списка, он всегда перезаписывает их пустым списком,Я не уверен, правильно ли я настроил маппер или это ошибка.Следующая программа демонстрирует проблему.

namespace automapper_test
{
    using AutoMapper;
    using System;
    using System.Collections.Generic;

    class Program
    {
        class Test
        {
            public int? A { get; set; }
            public string B { get; set; }
            public Guid? C { get; set; }
            public List<Guid> D { get; set; }
        }

        static void Main(string[] args)
        {
            var config = new MapperConfiguration(cfg =>
            {
                cfg.AllowNullCollections = true;
                cfg.CreateMap<Test, Test>().ForAllMembers(opt => opt.Condition((src, dest, member) => member != null));
            });

            var mapper = config.CreateMapper();

            var source = new Test { A = 2, C = Guid.Empty };
            var target = new Test { A = 1, B = "hello", C = Guid.NewGuid(), D = new List<Guid> { Guid.NewGuid() } };

            mapper.Map(source, target);

            System.Diagnostics.Debug.Assert(target.D.Count == 1);
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...