2014-02-07 4 views
0

다음은 문제를 설명하는 작은 코드 단편입니다.AutoMapper가 Nullable 속성에 Null 값을 매핑하지 않는 이유는 무엇입니까?

[TestMethod] 
public void AutoMapper_MappingNullValue_ShouldMapNull() 
{ 
    //Arrange 
    var source = new DummySource { MyDate = null }; 
    var destination = new DummyDestination { MyDate = DateTime.Now }; 
    AutoMapper.Mapper.CreateMap<DummySource, DummyDestination>(); 

    //Act 
    var returnResult = AutoMapper.Mapper.Map(source, destination); 

    //Assert 
    Assert.IsNull(returnResult.MyDate); 
    Assert.IsNotNull(destination.MyDate); 
} 

private class DummySource 
{ 
    public DateTime? MyDate { get; set; } 
} 

private class DummyDestination 
{ 
    public DateTime? MyDate { get; set; } 
} 

처음 어설 션에서 어떻게 실패합니까? 나는 결과에 널 값을 가질 것으로 예상했다. 사실 returnResultdestination은 둘 다 초기 값을 갖습니다.

+2

첫 번째 주장은 실패하지 않습니다. 두 번째 어설 션은'source'를'destination'에 매핑하기 때문에'destination.MyDate'가'null'이므로 실패 할 것입니다. 기존 객체를 보존하려면'var returnResult = AutoMapper.Mapper.Map (source);'를 사용하십시오. – Romoku

+0

@Romoku 혼자만의 것 http://imgur.com/KG0XJVj –

+0

사용중인 AutoMapper 버전은 무엇입니까? 귀하의 코드는 나를 위해 잘 작동합니다. – sloth

답변

2

너겟 패키지를 업데이트 해보십시오.

이 내용은 issue #310으로 수정되었습니다. 변경을 구현하는 첫 번째 버전은 3.0.0입니다.

+0

좋은 하루 보내 주셔서 감사합니다. –

관련 문제