Added reader extensions.
This commit is contained in:
@@ -11485,6 +11485,126 @@ namespace DynamORM
|
|||||||
void Dispose(bool disposing);
|
void Dispose(bool disposing);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class ReaderExtensions
|
||||||
|
{
|
||||||
|
public static bool? GetBooleanIfNotNull(this IDataReader r, string name, bool? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetBoolean(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte? GetByteIfNotNull(this IDataReader r, string name, byte? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetByte(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static char? GetCharIfNotNull(this IDataReader r, string name, char? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetChar(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DateTime? GetDateTimeIfNotNull(this IDataReader r, string name, DateTime? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetDateTime(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static decimal? GetDecimalIfNotNull(this IDataReader r, string name, decimal? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetDecimal(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double? GetDoubleIfNotNull(this IDataReader r, string name, double? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetDouble(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float? GetFloatIfNotNull(this IDataReader r, string name, float? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetFloat(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Guid? GetGuidIfNotNull(this IDataReader r, string name, Guid? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetGuid(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static short? GetInt16IfNotNull(this IDataReader r, string name, short? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetInt16(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int? GetInt32IfNotNull(this IDataReader r, string name, int? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetInt32(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long? GetInt64IfNotNull(this IDataReader r, string name, long? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetInt64(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetStringIfNotNull(this IDataReader r, string name, string def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetString(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static object GetValueIfNotNull(this IDataReader r, string name, object def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetValue(ord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>Class containing useful string extensions.</summary>
|
/// <summary>Class containing useful string extensions.</summary>
|
||||||
internal static class StringExtensions
|
internal static class StringExtensions
|
||||||
{
|
{
|
||||||
|
|||||||
125
DynamORM/Helpers/ReaderExtensions.cs
Normal file
125
DynamORM/Helpers/ReaderExtensions.cs
Normal file
@@ -0,0 +1,125 @@
|
|||||||
|
using System;
|
||||||
|
using System.Data;
|
||||||
|
|
||||||
|
namespace DynamORM.Helpers
|
||||||
|
{
|
||||||
|
public static class ReaderExtensions
|
||||||
|
{
|
||||||
|
public static bool? GetBooleanIfNotNull(this IDataReader r, string name, bool? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetBoolean(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static byte? GetByteIfNotNull(this IDataReader r, string name, byte? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetByte(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static char? GetCharIfNotNull(this IDataReader r, string name, char? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetChar(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static DateTime? GetDateTimeIfNotNull(this IDataReader r, string name, DateTime? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetDateTime(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static decimal? GetDecimalIfNotNull(this IDataReader r, string name, decimal? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetDecimal(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static double? GetDoubleIfNotNull(this IDataReader r, string name, double? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetDouble(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float? GetFloatIfNotNull(this IDataReader r, string name, float? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetFloat(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Guid? GetGuidIfNotNull(this IDataReader r, string name, Guid? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetGuid(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static short? GetInt16IfNotNull(this IDataReader r, string name, short? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetInt16(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int? GetInt32IfNotNull(this IDataReader r, string name, int? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetInt32(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static long? GetInt64IfNotNull(this IDataReader r, string name, long? def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetInt64(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static string GetStringIfNotNull(this IDataReader r, string name, string def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetString(ord);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static object GetValueIfNotNull(this IDataReader r, string name, object def = null)
|
||||||
|
{
|
||||||
|
var ord = r.GetOrdinal(name);
|
||||||
|
if (r.IsDBNull(ord))
|
||||||
|
return def;
|
||||||
|
|
||||||
|
return r.GetValue(ord);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user