映射后Automapper嵌套对象为null

时间:2019-03-20 08:42:25

标签: null nested mapping automapper

我有两个实体:

public class TableA
  {

    public int id { get; set; }   
    public virtual TableB TableB { get; set; }
}



public class TableB
 {
   public TableB()
   {
     TableAList = new List<TableA>();
   }
   public int id { get; set; }
   public virtual List<TableA> TableAList { get; set; }
 }

还有两个班级

public class ClasseMetierA
  {
    private int id;
    public ClasseMetierB TableB;
}


public class ClasseMetierB
  {
                 public ClassMetierB()
        {
            TableAList = new List<ClasseMetierAList>();
        }
    private int id;   
    public List<ClasseMetierA> TableAList { get; set; }
}

我想将TableB对象转换为ClasseMetierB对象。 我正在使用具有以下配置的自动映射器:

mapperConfig = new MapperConfiguration(cfg =>
        {

                    cfg.CreateMap<TableA, ClasseMetierA>().MaxDepth(3);
                    cfg.CreateMap<TableB, ClasseMetierB>().MaxDepth(3);

        });
        mapperConfig.AssertConfigurationIsValid();

我正在调用此函数来转换我的对象:

public B ConvertDTB(D obj)
    {
      var mapper = mapperConfig.CreateMapper();
      return mapper.Map<B>(obj);
    }

问题如下: 当我将TableB对象转换为ClasseMetierB对象时,即使源属性(TableB.TableAList)并非如此,TableAList中所有元素的属性都为空。

我发现这篇帖子(Nested object members null after mapping with Automapper)遇到了类似的问题,但给出的解决方案仅引发了null异常错误。

预先感谢

0 个答案:

没有答案