首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IDataReader没有选择的定义

IDataReader没有选择的定义
EN

Stack Overflow用户
提问于 2018-09-03 07:49:24
回答 1查看 1.2K关注 0票数 0

我最近将我的VS2015项目升级为VS2017。我将.NET框架升级到4.7.2,但现在我遇到了以下问题

代码语言:javascript
复制
    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。有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-03 07:54:40

IDataReader没有实现IEnumerable接口,因此没有Select等LINQ方法。我建议您实现自己的Select扩展方法:

代码语言:javascript
复制
public static IEnumerable<TResult> Select<TResult>(this IDataReader reader,
                                       Func<IDataReader, TResult> selector)
{
    while (reader.Read())
    {
        yield return selector(reader);
    }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52145334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档