private static void BindParameter(SqlParameter sqlParam, string tvpName, string[] columnNames, BindingParameterConverter[] converters, IRelation relation)
        {
            ITuple refTuple = relation.Row();

            IEnumerable <SqlDataRecord> iterator()
            {
                SqlDataRecord record = GetDataRecord(columnNames, refTuple);

                foreach (ITuple tuple in relation)
                {
                    SetRecordValues(record, tuple, converters);

                    yield return(record);
                }
            }

            if (refTuple == null)
            {
                sqlParam.Value = Array.Empty <SqlDataRecord>();
            }
            else
            {
                sqlParam.Value = iterator();
            }

            sqlParam.SqlDbType = SqlDbType.Structured;
            sqlParam.TypeName  = tvpName;
        }