Nano Hash - криптовалюты, майнинг, программирование

Как игнорировать исходные свойства типов Nullable (например, int?)

Это кажется настолько распространенной проблемой Automapper, что я чувствую, что на 100% должен ее упустить, хотя я прошерстил сеть. Если у меня есть исходные и конечные объекты:

class Source {
   int? price { get; set; }
}

class Destination {
   int price { get;set; }
}

CreateMap<Source, Destination>()
     .ForAllMembers(o => o.Condition((source, destination, member) => 
              (member != null) ));

Не будет работать, потому что свойство, допускающее значение NULL, по-прежнему будет использовать значение по умолчанию для этого типа, что означает, что Destination.price устанавливается равным 0 каждый раз, даже если Source.price.HasValue==false

Учитывая, что большинство DTO используют поля, допускающие значение NULL, чтобы пользователи не могли отправлять больше полей, чем требуется, возникает вопрос:

Как мы глобально настраиваем Automapper 8.1, чтобы НЕ ОТОБРАЖАТЬ какие-либо свойства, допускающие значение NULL, когда HasValue==false (т. е. оставить текущее значение Destination.price как есть).

Опять же, я потратил часы на изучение документации и примеров, но явно упустил это... извините, если это очевидно :-(

30.05.2019

  • Вам было бы полезно stackoverflow.com/questions/43947475/ 02.06.2019
  • Я не понимаю, как это решение делает что-либо, чтобы предотвратить правильное сопоставление Automapper TYPES с нулевым значением. Все, что это делает, это иметь дело со стандартом не отображать, если источник равен нулю. Это не относится к тому, чтобы не отображать, если nullabletype.hasvalue==false. Я действительно ошеломлен тем, что эта проблема не в центре внимания ... спасибо за ваше предложение, очень признателен. 03.06.2019

Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..