无法将“System.Data.Common.DataRecordInternal”类型的对象强制转换为“System.Data.IDataReader”类型

时间:2012-09-19 18:32:58

标签: c# linq

尝试创建this linq语句时。我遇到了以下错误:

  

无法转换'System.Data.Common.DataRecordInternal'类型的对象   输入'System.Data.IDataReader'

这是我正在为@SLaks promising answer做的事情。

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

1 个答案:

答案 0 :(得分:7)

请尝试reader.Cast<DbDataRecord>reader.Cast<IDataRecord>

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

IDataRecord Interface

  

提供对DataReader每行内列值的访问,   并由访问的.NET Framework数据提供程序实现   关系数据库。