public async Task <List <SchemaFieldDef> > GetFieldsAsync(params string[] ignoreFields) { return(await Task.Run(() => { var schema = Connection.GetSchema("Columns", new[] { null, null, TableName }); return (from row in schema.AsEnumerable() let fieldName = row.Field <string>("COLUMN_NAME") let size = row.Field <int?>("CHARACTER_MAXIMUM_LENGTH") let dataType = SchemaFieldDef.StringToDataType(row.Field <string>("DATA_TYPE")) where !ignoreFields.Contains(fieldName) select new SchemaFieldDef { FieldName = fieldName, Size = size ?? 0, DataType = dataType }).ToList(); })); }