Есть ли какие-либо рамки, которые можно сделать следующее:Framework для объединения хозяйствующих субъектов
var source = new Entity()
{
StringProp = null,
IntProp = 100,
};
var target = new Entity()
{
StringProp = "stringValue", // Property value should remain the same if source value is null
IntProp = 222
};
var mergedEntity = MergeFramework.Merge(source, target); // Here is what I am looking for
Assert.AreEqual(100, mergedEntity.IntField);
Assert.AreEqual("stringValue", mergedEntity.StringField);
Ниже рабочий процесс, где мне это нужно:
App получает экземпляр объекта. Некоторые свойства экземпляра являются нулевыми. (исходный экземпляр)
Приложение извлекает из базы данных объект с тем же идентификатором, что и в источнике. (целевой экземпляр)
Объединение двух объектов и сохранение объединений в базу данных.
Основная проблема заключается в том, что в моем проекте около 600 объектов, поэтому я не хочу писать логику объединения для каждого объекта вручную. В принципе, я ищу что-то вроде гибкого AutoMapper или ValueInjecter, которые удовлетворяют следующим требованиям:
Предоставлять возможность указать тип слияния условия. Например: if source.IntProp == int.MinInt -> не сливать свойство
Предоставьте возможность указать особые условия недвижимости. Как и в AutoMapper:
Mapper.CreateMap(). ForMember (dest => dest.EventDate, opt => opt.MapFrom (src => src.EventDate.Date));
Я теперь с помощью ExpressMapper вместо ValueInjector теперь. :-) –