如何指示automapper在它们为null时忽略嵌套实体

时间:2016-10-04 08:45:24

标签: automapper

我正在使用Automapper使用命名约定自动展平对象

这些是我的实体

class Student 
{
   string Name;
   Address Address;
}
class Address
{
   string Street;
   string City;
}

学生可以有地址:

student1 = new Student {Name= "Rob", Address = new Address { Street = "my address", City = "Milan" }};
student2 = new Student {Name= "Tom" };

这是我的DTO

class Student 
{
   string Name;
   string AddressStreet;
}

这是我的映射配置文件:

CreateMap<Student, StudentDto>();

映射第一个学生工作正常,但映射第二个

studentdto2 = _mapper.Map<Student, StudentDTO>(student2);

给我一​​个NullReference异常

问题:如何指示automapper,Student.Address属性是可选的,并且当它为null时不映射它?

1 个答案:

答案 0 :(得分:0)

问题在于您使用的Automapper版本。在最新的automapper版本(v 5.1.l)中不会发生此问题。您可以切换到最新版本,看看相同的代码是否有效