public static T FirstOrDefault <T>(this IDbCommand dbCmd, SqlExpressionVisitor <T> expression)
        {
            string sql = expression.ToSelectStatement();

            using (var dbReader = dbCmd.ExecReader(sql))
            {
                return(ConvertTo <T>(dbReader));
            }
        }
        public static List <T> Select <T>(this IDbCommand dbCmd, SqlExpressionVisitor <T> expression)
        {
            string sql = expression.ToSelectStatement();

            using (var reader = dbCmd.ExecReader(sql))
            {
                return(ConvertToList <T>(reader));
            }
        }