Я использую Automapper , чтобы наложить объект на себя.
Я хочу игнорировать null
значения из исходного объекта при выполнении сопоставления. Это работает для коллекций с использованием AllowNullCollections = true;
. Когда у меня есть целевой объект, который содержит словарь с некоторыми элементами, и я пытаюсь отобразить исходный объект, который содержит нулевой словарь, я ожидаю, что нулевой словарь будет игнорироваться, потому что я игнорирую нулевые коллекции.
Но на моем целевом объекте Словарь оказывается пустым. Это ожидаемое поведение для словарей?
Это мой профиль
AllowNullCollections = true;
CreateMap<T, T>()
.ForAllOtherMembers(o => o.Condition((s, d, value) => value != null));
И мой картографический вызов
var context = PatcherProfileContext.Create();
var originalEntity = new TestEntity
{
Dictionary = new Dictionary<string, object> { { "key", "value" } }
};
var patchEntity = new TestEntity
{
Dictionary = null
};
context.Mapper.Map(patchEntity, originalEntity);
originalEntity.Dictionary.ShouldHaveSingleItem();
Но он заканчивается быть пустым.