private DbType DiscoverDbType(object value)
{
if (value is bool)
return DbType.Boolean;
if (value is byte)
return DbType.Byte;
if (value is int)
return DbType.Int32;
if (value is short)
return DbType.Int16;
if (value is long)
return DbType.Int64;
if (value is double)
return DbType.Double;
if (value is float)
return DbType.Single;
if (value is string)
return DbType.String;
if (value is DateTime)
return DbType.DateTime2;
if (value is DateTimeOffset)
return DbType.DateTimeOffset;
if (value is byte[])
return DbType.Binary;
throw new NotSupportedException();
}