>>>Viv,
>>>
>>>After I switched to List and Linq, the performance is 10 times slower than it was :( The procedure used to execute in ~800 ms. Now it executes in 8000 ms.
>>
>>As John says, must be something else going on. Linq should be faster then a coded iteration....
>
>Right, I bet the problem is here with the CAST (that's what I was getting yesterday night)
>
>
> columns = (from DataRow r in reader.GetSchemaTable().AsEnumerable()
> select new ColumnSchema
> {
> ColumnName = (String) r["ColumnName"],
> ColumnSize = (Int32) r["ColumnSize"],
> DbType = (SqlDbType) r["ProviderType"],
> DataType = reader.GetFieldType((int)r["ColumnOrdinal"]),
> Precision = (Int16) r["NumericPrecision"],
> Scale = (Int16) r["NumericScale"],
> IsIdentity = (Boolean) r["IsIdentity"]
> }).ToList();
>
>I am going to debug it in a few minutes and see what needs to be adjusted.
Why are you using reader.GetFieldType((int)r["ColumnOrdinal"]) rather than (Type) r["DataType"] ?