我最近将我的VS2015项目升级为VS2017。我将.NET框架升级到4.7.2,但现在我遇到了以下问题
using (IDataReader rd = ExecuteCmdAndGetReader(myssqlstring))
{
MyList = rd.Select<myObject>(myObject.Load).ToList();
}
internal SqlDataReader ExecuteCmdAndGetReader(string sql)
{
SqlCommand cmd;
cmd = new SqlCommand(sql, connection);
SqlDataReader reader = cmd.ExecuteReader();
return reader;
}错误是
“IDataReader”不包含“选择”的定义,也找不到接受'IDataReader‘类型的第一个参数的可访问扩展方法'Select’(您缺少使用指令还是程序集引用?)
我在使用中有System.Linq,在参考中有System.Core。有什么想法吗?
发布于 2018-09-03 07:54:40
IDataReader没有实现IEnumerable接口,因此没有Select等LINQ方法。我建议您实现自己的Select扩展方法:
public static IEnumerable<TResult> Select<TResult>(this IDataReader reader,
Func<IDataReader, TResult> selector)
{
while (reader.Read())
{
yield return selector(reader);
}
}https://stackoverflow.com/questions/52145334
复制相似问题