public static void BulkInsert <T>(this IDbConnection connection, IList <T> items)
            where T : class
        {
            if (items.Count == 0)
            {
                return;
            }

            var commandGenerator = new BulkInsert <T>();

            var sql        = commandGenerator.GetSql(items.Count);
            var parameters = items.SelectMany(item => commandGenerator.GetColumns().Select(c => c.ValueAccessor(item))).ToList();

            AttachParamsAndRun(connection, sql, parameters);
        }