Заполните IList Realm с помощью AutoMapper - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть тип источника

public class A
{
    public List<string> MyList {get; set;}
}

и тип назначения, который расширяется RealmObject

public class B: RealmObject
{
    public IList<string> MyList {get;}
}

Мне нужно конвертировать A в B с помощью Automapper. Однако, поскольку MyList в B только для получения, он остается пустым после преобразования. Как я понимаю, Realm внутренне создает экземпляр этого списка, и мне нужно добавить в него элементы (вместо назначения нового списка). Как я могу настроить это с Automapper?

1 Ответ

0 голосов
/ 01 ноября 2018

Чтобы сделать эту задачу возможной, вам нужно использовать UseDestinationvalue, чтобы предотвратить создание списка (как предложено @Lucian Bargaoanu), а затем MapFrom для отображения значений.

public class A
{
    public List<string> MyList {get; set;}
}

public class B: RealmObject
{
    public IList<string> MyList {get;}
}

var config = new MapperConfiguration(cfg =>
    {
        cfg.CreateMap<A, B>()
            .ForMember(dest => dest.MyList, opt =>
            {
                 opt.UseDestinationValue();
                 opt.MapFrom(src => src.MyList);
            });
    }
...