示例#1
0
        public void SetValue(SqlParameter parameter, object?value)
        {
            _valuesByParameter ??= new ();
            if (!_valuesByParameter.TryGetValue(parameter, out var parameterValue))
            {
                parameterValue = new SqlParameterValue(value, parameter.Type);
                _valuesByParameter.Add(parameter, parameterValue);
            }
            else
            {
                _valuesByParameter.Remove(parameter);
                _valuesByParameter.Add(parameter, new SqlParameterValue(value, parameterValue.DbDataType));
            }

            if (parameter.AccessorId != null)
            {
                _valuesByAccessor ??= new ();
                if (!_valuesByAccessor.TryGetValue(parameter.AccessorId.Value, out parameterValue))
                {
                    parameterValue = new SqlParameterValue(value, parameter.Type);
                    _valuesByAccessor.Add(parameter.AccessorId.Value, parameterValue);
                }
                else
                {
                    _valuesByAccessor.Remove(parameter.AccessorId.Value);
                    _valuesByAccessor.Add(parameter.AccessorId.Value, new SqlParameterValue(value, parameterValue.DbDataType));
                }
            }
        }
示例#2
0
        public void AddValue(SqlParameter parameter, object?value, DbDataType dbDataType)
        {
            _valuesByParameter ??= new ();

            var parameterValue = new SqlParameterValue(value, dbDataType);

            _valuesByParameter.Remove(parameter);
            _valuesByParameter.Add(parameter, parameterValue);

            if (parameter.AccessorId != null)
            {
                _valuesByAccessor ??= new ();
                _valuesByAccessor.Remove(parameter.AccessorId.Value);
                _valuesByAccessor.Add(parameter.AccessorId.Value, parameterValue);
            }
        }