我最近将我的 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;
}
Run Code Online (Sandbox Code Playgroud)
错误是
“IDataReader”不包含“Select”的定义,并且找不到接受“IDataReader”类型的第一个参数的可访问扩展方法“Select”(您是否缺少 using 指令或程序集引用?)
我确实在使用中使用了 System.Linq,在参考中使用了 System.Core。请问有什么想法吗?
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);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |