Exemple #1
0
        public void DbCommandLogData_implements_enumerable_of_key_value_pair()
        {
            var parameter = new DbParameterLogData(
                "@param", "Muffin", true, ParameterDirection.Input, DbType.String, false, 0, 0, 0);

#pragma warning disable 618
            var logData = new DbCommandLogData(
#pragma warning restore 618
                "FakeCommand",
                CommandType.Text,
                30,
                new List <DbParameterLogData> {
                parameter
            },
                1000);

            var keyValuePairs = logData.ToList();

            Assert.Equal("FakeCommand", keyValuePairs.Single(kvp => kvp.Key == "CommandText").Value);
            Assert.Equal(CommandType.Text, keyValuePairs.Single(kvp => kvp.Key == "CommandType").Value);
            Assert.Equal(30, keyValuePairs.Single(kvp => kvp.Key == "CommandTimeout").Value);
            Assert.Equal(parameter, ((List <DbParameterLogData>)keyValuePairs.Single(kvp => kvp.Key == "Parameters").Value).Single());
            Assert.Equal(1000L, keyValuePairs.Single(kvp => kvp.Key == "ElapsedMilliseconds").Value);
        }
Exemple #2
0
        /// <summary>
        ///     This API supports the Entity Framework Core infrastructure and is not intended to be used
        ///     directly from your code. This API may change or be removed in future releases.
        /// </summary>
        public static string FormatParameter(
            [NotNull] this DbParameterLogData parameterData,
            bool quoteValues = true)
        {
            var builder = new StringBuilder();

            var value   = parameterData.Value;
            var clrType = value?.GetType();

            FormatParameterValue(builder, value, quoteValues);

            if (parameterData.IsNullable &&
                value != null &&
                !clrType.IsNullableType())
            {
                builder.Append(" (Nullable = true)");
            }
            else
            {
                if (!parameterData.IsNullable &&
                    parameterData.HasValue &&
                    (value == null ||
                     clrType.IsNullableType()))
                {
                    builder.Append(" (Nullable = false)");
                }
            }

            if (parameterData.Size != 0)
            {
                builder
                .Append(" (Size = ")
                .Append(parameterData.Size.ToString(CultureInfo.InvariantCulture))
                .Append(')');
            }

            if (parameterData.Precision != 0)
            {
                builder
                .Append(" (Precision = ")
                .Append(parameterData.Precision.ToString(CultureInfo.InvariantCulture))
                .Append(')');
            }

            if (parameterData.Scale != 0)
            {
                builder
                .Append(" (Scale = ")
                .Append(parameterData.Scale.ToString(CultureInfo.InvariantCulture))
                .Append(')');
            }

            if (parameterData.Direction != ParameterDirection.Input)
            {
                builder
                .Append(" (Direction = ")
                .Append(parameterData.Direction)
                .Append(')');
            }

            if (parameterData.HasValue &&
                !IsNormalDbType(parameterData.DbType, clrType))
            {
                builder
                .Append(" (DbType = ")
                .Append(parameterData.DbType)
                .Append(')');
            }

            return(builder.ToString());
        }
        public static string FormatParameter(DbParameterLogData parameterData)
        {
            var builder = new StringBuilder();

            var value   = parameterData.Value;
            var clrType = value?.GetType();

            FormatParameterValue(builder, value);

            if (parameterData.IsNullable &&
                value != null &&
                !IsNullableType(clrType))
            {
                builder.Append(" (Nullable = true)");
            }
            else
            {
                if (!parameterData.IsNullable &&
                    parameterData.HasValue &&
                    (value == null ||
                     IsNullableType(clrType)))
                {
                    builder.Append(" (Nullable = false)");
                }
            }

            if (parameterData.Size != 0)
            {
                builder
                .Append(" (Size = ")
                .Append(parameterData.Size)
                .Append(')');
            }

            if (parameterData.Precision != 0)
            {
                builder
                .Append(" (Precision = ")
                .Append(parameterData.Precision)
                .Append(')');
            }

            if (parameterData.Scale != 0)
            {
                builder
                .Append(" (Scale = ")
                .Append(parameterData.Scale)
                .Append(')');
            }

            if (parameterData.Direction != ParameterDirection.Input)
            {
                builder
                .Append(" (Direction = ")
                .Append(parameterData.Direction)
                .Append(')');
            }

            if (parameterData.HasValue &&
                !IsNormalDbType(parameterData.DbType, clrType))
            {
                builder
                .Append(" (DbType = ")
                .Append(parameterData.DbType)
                .Append(')');
            }

            return(builder.ToString());
        }