Commit 19afe1ed authored by Marc Gravell's avatar Marc Gravell

fix #455 (make LookupDbType available again)

parent 3d114884
...@@ -233,7 +233,12 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity) ...@@ -233,7 +233,12 @@ protected void AddParameters(IDbCommand command, SqlMapper.Identity identity)
var isCustomQueryParameter = val is SqlMapper.ICustomQueryParameter; var isCustomQueryParameter = val is SqlMapper.ICustomQueryParameter;
SqlMapper.ITypeHandler handler = null; SqlMapper.ITypeHandler handler = null;
if (dbType == null && val != null && !isCustomQueryParameter) dbType = SqlMapper.LookupDbType(val.GetType(), name, true, out handler); if (dbType == null && val != null && !isCustomQueryParameter)
{
#pragma warning disable 618
dbType = SqlMapper.LookupDbType(val.GetType(), name, true, out handler);
#pragma warning disable 618
}
if (isCustomQueryParameter) if (isCustomQueryParameter)
{ {
((SqlMapper.ICustomQueryParameter)val).AddParameter(command, name); ((SqlMapper.ICustomQueryParameter)val).AddParameter(command, name);
...@@ -468,7 +473,11 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express ...@@ -468,7 +473,11 @@ public DynamicParameters Output<T>(T target, Expression<Func<T, object>> express
else else
{ {
SqlMapper.ITypeHandler handler; SqlMapper.ITypeHandler handler;
dbType = (!dbType.HasValue) ? SqlMapper.LookupDbType(targetMemberType, targetMemberType?.Name, true, out handler) : dbType; dbType = (!dbType.HasValue)
#pragma warning disable 618
? SqlMapper.LookupDbType(targetMemberType, targetMemberType?.Name, true, out handler)
#pragma warning restore 618
: dbType;
// CameFromTemplate property would not apply here because this new param // CameFromTemplate property would not apply here because this new param
// Still needs to be added to the command // Still needs to be added to the command
......
...@@ -13,7 +13,7 @@ partial class SqlMapper ...@@ -13,7 +13,7 @@ partial class SqlMapper
/// <summary> /// <summary>
/// Not intended for direct usage /// Not intended for direct usage
/// </summary> /// </summary>
[Obsolete("Not intended for direct usage", false)] [Obsolete(ObsoleteInternalUsageOnly, false)]
#if !COREFX #if !COREFX
[Browsable(false)] [Browsable(false)]
#endif #endif
...@@ -23,7 +23,7 @@ public static class TypeHandlerCache<T> ...@@ -23,7 +23,7 @@ public static class TypeHandlerCache<T>
/// <summary> /// <summary>
/// Not intended for direct usage /// Not intended for direct usage
/// </summary> /// </summary>
[Obsolete("Not intended for direct usage", true)] [Obsolete(ObsoleteInternalUsageOnly, true)]
public static T Parse(object value) public static T Parse(object value)
{ {
return (T)handler.Parse(typeof(T), value); return (T)handler.Parse(typeof(T), value);
...@@ -32,7 +32,7 @@ public static T Parse(object value) ...@@ -32,7 +32,7 @@ public static T Parse(object value)
/// <summary> /// <summary>
/// Not intended for direct usage /// Not intended for direct usage
/// </summary> /// </summary>
[Obsolete("Not intended for direct usage", true)] [Obsolete(ObsoleteInternalUsageOnly, true)]
public static void SetValue(IDbDataParameter parameter, object value) public static void SetValue(IDbDataParameter parameter, object value)
{ {
handler.SetValue(parameter, value); handler.SetValue(parameter, value);
......
...@@ -331,10 +331,12 @@ public static void AddTypeHandler<T>(TypeHandler<T> handler) ...@@ -331,10 +331,12 @@ public static void AddTypeHandler<T>(TypeHandler<T> handler)
internal const string LinqBinary = "System.Data.Linq.Binary"; internal const string LinqBinary = "System.Data.Linq.Binary";
private const string ObsoleteInternalUsageOnly = "This method is for internal use only";
/// <summary> /// <summary>
/// Get the DbType that maps to a given value /// Get the DbType that maps to a given value
/// </summary> /// </summary>
[Obsolete("This method is for internal use only")] [Obsolete(ObsoleteInternalUsageOnly, false)]
#if !COREFX #if !COREFX
[Browsable(false)] [Browsable(false)]
#endif #endif
...@@ -347,7 +349,12 @@ public static DbType GetDbType(object value) ...@@ -347,7 +349,12 @@ public static DbType GetDbType(object value)
return LookupDbType(value.GetType(), "n/a", false, out handler); return LookupDbType(value.GetType(), "n/a", false, out handler);
} }
internal static DbType LookupDbType(Type type, string name, bool demand, out ITypeHandler handler) [Obsolete(ObsoleteInternalUsageOnly, false)]
#if !COREFX
[Browsable(false)]
#endif
[EditorBrowsable(EditorBrowsableState.Never)]
public static DbType LookupDbType(Type type, string name, bool demand, out ITypeHandler handler)
{ {
DbType dbType; DbType dbType;
handler = null; handler = null;
...@@ -1707,7 +1714,7 @@ private static Exception MultiMapException(IDataRecord reader) ...@@ -1707,7 +1714,7 @@ private static Exception MultiMapException(IDataRecord reader)
[Browsable(false)] [Browsable(false)]
#endif #endif
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", false)] [Obsolete(ObsoleteInternalUsageOnly, false)]
public static char ReadChar(object value) public static char ReadChar(object value)
{ {
if (value == null || value is DBNull) throw new ArgumentNullException(nameof(value)); if (value == null || value is DBNull) throw new ArgumentNullException(nameof(value));
...@@ -1723,7 +1730,7 @@ public static char ReadChar(object value) ...@@ -1723,7 +1730,7 @@ public static char ReadChar(object value)
[Browsable(false)] [Browsable(false)]
#endif #endif
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", false)] [Obsolete(ObsoleteInternalUsageOnly, false)]
public static char? ReadNullableChar(object value) public static char? ReadNullableChar(object value)
{ {
if (value == null || value is DBNull) return null; if (value == null || value is DBNull) return null;
...@@ -1740,7 +1747,7 @@ public static char ReadChar(object value) ...@@ -1740,7 +1747,7 @@ public static char ReadChar(object value)
[Browsable(false)] [Browsable(false)]
#endif #endif
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", true)] [Obsolete(ObsoleteInternalUsageOnly, true)]
public static IDbDataParameter FindOrAddParameter(IDataParameterCollection parameters, IDbCommand command, string name) public static IDbDataParameter FindOrAddParameter(IDataParameterCollection parameters, IDbCommand command, string name)
{ {
IDbDataParameter result; IDbDataParameter result;
...@@ -1764,7 +1771,7 @@ public static IDbDataParameter FindOrAddParameter(IDataParameterCollection param ...@@ -1764,7 +1771,7 @@ public static IDbDataParameter FindOrAddParameter(IDataParameterCollection param
[Browsable(false)] [Browsable(false)]
#endif #endif
[EditorBrowsable(EditorBrowsableState.Never)] [EditorBrowsable(EditorBrowsableState.Never)]
[Obsolete("This method is for internal usage only", false)] [Obsolete(ObsoleteInternalUsageOnly, false)]
public static void PackListParameters(IDbCommand command, string namePrefix, object value) public static void PackListParameters(IDbCommand command, string namePrefix, object value)
{ {
// initially we tried TVP, however it performs quite poorly. // initially we tried TVP, however it performs quite poorly.
...@@ -1928,7 +1935,7 @@ public static void ReplaceLiterals(this IParameterLookup parameters, IDbCommand ...@@ -1928,7 +1935,7 @@ public static void ReplaceLiterals(this IParameterLookup parameters, IDbCommand
/// <summary> /// <summary>
/// Convert numeric values to their string form for SQL literal purposes /// Convert numeric values to their string form for SQL literal purposes
/// </summary> /// </summary>
[Obsolete("This is intended for internal usage only")] [Obsolete(ObsoleteInternalUsageOnly)]
public static string Format(object value) public static string Format(object value)
{ {
if (value == null) if (value == null)
...@@ -2143,7 +2150,9 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql) ...@@ -2143,7 +2150,9 @@ internal static IList<LiteralToken> GetLiteralTokens(string sql)
continue; continue;
} }
ITypeHandler handler; ITypeHandler handler;
#pragma warning disable 618
DbType dbType = LookupDbType(prop.PropertyType, prop.Name, true, out handler); DbType dbType = LookupDbType(prop.PropertyType, prop.Name, true, out handler);
#pragma warning restore 618
if (dbType == DynamicParameters.EnumerableMultiParameter) if (dbType == DynamicParameters.EnumerableMultiParameter)
{ {
// this actually represents special handling for list types; // this actually represents special handling for list types;
...@@ -3161,7 +3170,7 @@ private static void LoadLocalAddress(ILGenerator il, int index) ...@@ -3161,7 +3170,7 @@ private static void LoadLocalAddress(ILGenerator il, int index)
/// <summary> /// <summary>
/// Throws a data exception, only used internally /// Throws a data exception, only used internally
/// </summary> /// </summary>
[Obsolete("Intended for internal use only")] [Obsolete(ObsoleteInternalUsageOnly, false)]
public static void ThrowDataException(Exception ex, int index, IDataReader reader, object value) public static void ThrowDataException(Exception ex, int index, IDataReader reader, object value)
{ {
Exception toThrow; Exception toThrow;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment