>>>>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"] ?
Did you see yesterday's post from Bill F message #
1579381? There is no DataType property in TableSchema in .NET 4.5 according to documentation. I'm using .NET 4.0 right now, so I haven't verified.
If it's not broken, fix it until it is.
My Blog