Я пишу общую возможность конвертировать из объекта базы данных в бизнес-объект.
Мой бизнес-объект содержит настраиваемые атрибуты, и в зависимости от них я люблю выполнять над ними определенные операции.
При чтении из базы данных это довольно просто, потому что я могу использовать aftermap (не идеальное решение, потому что я должен сделать это с помощью отражения и установить значение в зависимости от него)
Но при обратной записи в базу данных я должен сделать это до Map, но это изменит исходный код, но мне просто нравится переходный процесс. Так что делайте операцию с Source на лету, но не меняйте исходный объект.
Это общая опция, поэтому я не могу работать со свойствами.
protected static T MapFromDatabaseWithConversion<T, TSource>(TSource source) where T : MappingModel, new()
{
var config = new MapperConfiguration(cfg => cfg.CreateMap<TSource, T>().AfterMap((src, dest) => dest.ConvertFromDatabase()));
return config.CreateMapper().Map<T>(source);
}
Есть ли у вас какое-либо решение для проверки на лету атрибута свойства и изменения значения в зависимости от него - или у вас есть идея изменить источник только на лету, поэтому не записывайте результат операции источника в src OBJ
Большое спасибо.