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); }
/// <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()); }