proc.ReturnColumns = ds.Tables[0].Columns.Cast<DataColumn>().ToList();
// Tidy up
foreach (var col in proc.ReturnColumns)
{
col.ColumnName = Regex.Replace(col.ColumnName, @"[^A-Za-z0-9\s]*", "");
col.ColumnName = Inflector.ToTitleCase(col.ColumnName).Replace(" ", "");
}
This could bring an issues that C# code cannot get correct stored procedure query result when column name has underline(s), e.g. if column name is "student_score", after tidy up, in return model class, corresponding property name is "StudentScore", in the list of query result, this property StudentScore is always NULL.