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; }