2014-10-30 5 views
2

Почему это не работает? table.Columns.Cast<DataColumn>()DataColumnCollection не содержит определения для Cast

using (SqlBulkCopy bcp = new SqlBulkCopy(conn)) 
{ 
    if (conn.State != ConnectionState.Open) 
     conn.Open(); 

    bcp.DestinationTableName = destinationTable; 

    //map the columns in the datatable to the sql table 
    table.Columns.Cast<DataColumn>().ToList().ForEach(c => bcp.ColumnMappings.Add(c.ColumnName, c.ColumnName)); 
} 

Я думал, что схожу с ума, поэтому я попытался тестовую таблицу ... То же самое ...

enter image description here

Это ошибка:

Error 1 'System.Data.DataColumnCollection' does not contain a definition for 'Cast' and the best extension method overload 'System.Data.EnumerableRowCollectionExtensions.Cast(System.Data.EnumerableRowCollection)' has some invalid arguments

Error 2 Instance argument: cannot convert from 'System.Data.DataColumnCollection' to 'System.Data.EnumerableRowCollection'

+0

Пробовал очистить и перестроить? –

+0

Пробовал. Также перезапущен Vis Studio, все еще есть ошибка. – Kyle

ответ

4

Вы должны добавить System.Linq в свой проект. с использованием System.Linq;