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; }
}
這是怎麼發生在第一個斷言失敗?我希望結果有一個空值。實際上,returnResult
和destination
都是初始值。
它不是失敗的第一個斷言。第二個斷言應該失敗,因爲你將'source'映射到'destination',因此'destination.MyDate'是'null'。使用'var returnResult = AutoMapper.Mapper.Map(source);'來保存現有的對象。 –
Romoku
@Romoku自己看看http://imgur.com/KG0XJVj –
你正在使用哪個版本的AutoMapper?你的代碼適合我。 – sloth