4

このlinqステートメントを作成しようとすると。次のエラーが発生しました。

タイプ 'System.Data.Common.DataRecordInternal' のオブジェクトをタイプ 'System.Data.IDataReader' にキャストできません

これは、@SLaks の有望な回答に従って私が行っていることです。

List<TypeData> = reader.Cast<IDataReader>()
   .Select(dr => new TypeData { Type = (string)dr["type"] })                
   .ToList();
4

1 に答える 1

9

reader.Cast<DbDataRecord>またはreader.Cast<IDataRecord>代わりに試してください:

IEnumerable<TypeData> typeData = reader.Cast<IDataRecord>()
   .Select(dr => new TypeData { Type = (string)dr["type"] });

IDataRecordインターフェース

DataReader の各行内の列値へのアクセスを提供し、リレーショナル データベースにアクセスする .NET Framework データ プロバイダーによって実装されます。

于 2012-09-19T18:39:54.437 に答える