MssqlProjection<R> constructor

MssqlProjection<R>({
  1. required String name,
  2. required List<MssqlProjectionColumn> columns,
  3. required R map(
    1. MssqlRow row
    ),
})

Implementation

MssqlProjection({
  required this.name,
  required List<MssqlProjectionColumn> columns,
  required this.map,
}) : columns = List<MssqlProjectionColumn>.unmodifiable(columns) {
  final seen = <String>{};
  for (final column in columns) {
    final folded = column.alias.toLowerCase();
    if (!seen.add(folded)) {
      throw ArgumentError.value(
        column.alias,
        'columns',
        'Projection "$name" has two columns named "${column.alias}". '
            'Give one an explicit alias.',
      );
    }
  }
  if (this.columns.isEmpty) {
    throw ArgumentError.value(
      columns,
      'columns',
      'Projection "$name" has no columns.',
    );
  }
}