/// <summary> /// Sets the destination <see cref="DatabaseParameters"/> from the source property value. /// </summary> /// <param name="value">The source value.</param> /// <param name="parameters">The <see cref="DatabaseParameters"/>.</param> /// <param name="operationType">The single <see cref="Mapper.OperationTypes"/> being performed to enable selection.</param> public void SetDestValue(TSrce value, DatabaseParameters parameters, OperationTypes operationType) { if (parameters == null) { throw new ArgumentNullException(nameof(parameters)); } if (!OperationTypes.HasFlag(operationType)) { return; } if (parameters.Contains(DestParameterName)) { return; } if (_mapToDbOverride != null) { _mapToDbOverride(value, parameters, operationType); return; } var val = GetSrceValue(value, operationType); if (Mapper != null) { var em = (IDatabaseMapper)Mapper; em.MapToDb(val, parameters, operationType, this); } else { if (DestDbType.HasValue) { parameters.AddParameter(DestParameterName, Converter == null ? val : Converter.ConvertToDest(val), dbType: DestDbType.Value); } else { parameters.AddParameter(DestParameterName, Converter == null ? val : Converter.ConvertToDest(val)); } } }