使用AutoMapper填充Realm的IList

时间:2018-11-01 03:09:48

标签: c# realm automapper

我有一个来源类型

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

和扩展了RealmObject

的目标类型
public class B: RealmObject
{
    public IList<string> MyList {get;}
}

我需要使用自动映射器将A转换为B。但是,由于MyList中的B仅被获取,因此转换后它保持为空。据我了解,Realm在内部创建该列表的实例,我需要向其中添加项目(而不是分配新列表)。如何使用Automapper配置它?

1 个答案:

答案 0 :(得分:1)

要使该任务成为可能,您需要使用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);
            });
    }