public void Write(IEnumerable <IRow> rows)
        {
            var sql    = _context.SqlUpdateCalculatedFields(_parent, _cf);
            var fields = _context.GetUpdateCalculatedFields().ToArray();

            using (var cn = _cf.GetConnection()) {
                cn.Open();
                var trans = cn.BeginTransaction();
                try {
                    foreach (var batch in rows.Partition(_context.Entity.UpdateSize))
                    {
                        _context.Debug(() => "got a batch!");
                        var data = batch.Select(r => r.ToExpandoObject(fields));
                        _context.Debug(() => "converted to expando object");
                        var batchCount = Convert.ToUInt32(cn.Execute(sql, data, trans, 0, CommandType.Text));
                        _context.Debug(() => $"Updated {batchCount} calculated field records!");
                    }
                    trans.Commit();
                    _context.Debug(() => "Committed updates.");
                } catch (Exception ex) {
                    _context.Error(ex, ex.Message);
                    trans.Rollback();
                }
            }
        }